From 5cc1c6ce0a0f476c7e0fd8911bb4f08e85d69d99 Mon Sep 17 00:00:00 2001 From: YukkuriC <34098703+YukkuriC@users.noreply.github.com> Date: Sun, 16 Aug 2026 04:33:15 +0000 Subject: [PATCH 01/50] Fixed & extended MishapInternalException (#1268) #1259, but for branch main > ~~fixes #1229~~ > ~~and~~ adds detailed stacktrace (hover + click copy) for its debugging purpose > image --- .../mishaps/MishapInternalException.kt | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInternalException.kt b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInternalException.kt index 6fd3892b4d..5a4600a486 100644 --- a/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInternalException.kt +++ b/Common/src/main/java/at/petrak/hexcasting/api/casting/mishaps/MishapInternalException.kt @@ -3,7 +3,13 @@ package at.petrak.hexcasting.api.casting.mishaps import at.petrak.hexcasting.api.casting.eval.CastingEnvironment import at.petrak.hexcasting.api.casting.iota.Iota import at.petrak.hexcasting.api.pigment.FrozenPigment +import net.minecraft.network.chat.ClickEvent +import net.minecraft.network.chat.Component +import net.minecraft.network.chat.HoverEvent +import net.minecraft.network.chat.Style import net.minecraft.world.item.DyeColor +import java.io.PrintWriter +import java.io.StringWriter class MishapInternalException(val exception: Exception) : Mishap() { override fun accentColor(env: CastingEnvironment, errorCtx: Context): FrozenPigment = @@ -13,6 +19,21 @@ class MishapInternalException(val exception: Exception) : Mishap() { // NO-OP } - override fun errorMessage(env: CastingEnvironment, errorCtx: Context) = - error("unknown", exception) + override fun errorMessage(ctx: CastingEnvironment, errorCtx: Context): Component { + var message = Component.literal("$exception") + + // dump stack trace + val sw = StringWriter() + val pw = PrintWriter(sw) + exception.printStackTrace(pw) + val trace = sw.toString() + + message = message.withStyle( + Style.EMPTY + .withClickEvent(ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, trace)) + .withHoverEvent(HoverEvent(HoverEvent.Action.SHOW_TEXT, Component.literal(trace))) + ) + + return error("unknown", message) + } } From a3c259025533274125f5b964efeebf4ce77c5783 Mon Sep 17 00:00:00 2001 From: Lithyaku Date: Sun, 16 Aug 2026 19:01:23 +0000 Subject: [PATCH 02/50] chore(l10n): add French translation chore(l10n): add French translation Co-authored-by: Lithyaku Language: French Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fr/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/fr/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 | 1 + doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 | 1 + 2 files changed, 2 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 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 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/fr_fr.flatten.json5 @@ -0,0 +1 @@ +{} diff --git a/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 b/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 @@ -0,0 +1 @@ +{} From 6b58d366d13cd1c4abd71c2c6fe3906c17eb054f Mon Sep 17 00:00:00 2001 From: Christian perez Date: Sun, 16 Aug 2026 19:01:24 +0000 Subject: [PATCH 03/50] chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): add Spanish translation chore(l10n): add Spanish translation Co-authored-by: Christian perez Language: Spanish Progress: 0.5% (8 of 1386 strings) Progress: 0.6% (9 of 1386 strings) Progress: 0.7% (11 of 1386 strings) Progress: 0.9% (13 of 1386 strings) Progress: 4.1% (58 of 1386 strings) Progress: 81.2% (1126 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/es/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/es_es.flatten.json5 | 1755 +++++++++++++++++ .../hexcasting/lang/es_es.flatten.json5 | 1 + 2 files changed, 1756 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/es_es.flatten.json5 diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 new file mode 100644 index 0000000000..e34bdb3a5e --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -0,0 +1,1755 @@ +{ + "item.hexcasting": { + book: "Cuardeno hex", + staff: { + oak: "Bastón de roble", + spruce: "Bastón de pino", + birch: "Bastón de abeduel", + jungle: "Bastón de jungla", + acacia: "Bastón de acacia", + dark_oak: "Basótn de roble oscuro", + crimson: "Bastón carmes", + warped: "Bastón distorsionado", + mangrove: "Bastón de mangle", + cherry: "Bastón de cerezo", + bamboo: "Bastón de bambú", + edified: "Bastón edificado", + quenched: "Basón de fragmento templado", + mindsplice: "Bastón de empalme mental", + }, + amethyst_dust: "Polvo de amatista", + charged_amethyst: "Amatista cargada", + quenched_allay_shard: "Fragmento de allay templado", + scroll_small: { + "": "Pergamino pequeño", + of: "Como conseguistes este ítem de %s", + empty: "Pergamino pequeño vacio", + }, + scroll_medium: { + "": "Pergamino mediano", + of: "Como conseguistes este ítem de %s", + empty: "Pergamino mediano vacio", + }, + scroll: { + "": "Pergamino largo", + of: "Pergamino antiguo de %s", + empty: "Pergamino largo vacio", + }, + focus: { + "": "Centro", + sealed: "Centro sellado", + }, + ancient_cypher: { + "": "Cifra antigua", + preset: "Cifra antigua: %s", + }, + thought_knot: "Nudo de Pensiamento", + spellbook: "Libro de hechizos", + cypher: "Cifra", + trinket: "Baratija", + artifact: "Artefacto", + battery: "Frasco de Media", + lens: "Lente de adivinación", + abacus: "Ábaco", + jeweler_hammer: "Martillo de joyero", + sub_sandwich: "Sándwich de suma", + dye_colorizer_: { + white: "Pigmento blanco", + orange: "Pigmento naranja", + magenta: "Pigmento magenta", + light_blue: "Pigmento azul cielo", + yellow: "Pigmento amarillo", + lime: "Pigmento verde limón", + pink: "Pigmento rosa", + gray: "Pigmento gris", + light_gray: "Pigmento gris claro", + cyan: "Pigmento turquesa", + purple: "Pigmento morado", + blue: "Pigment azul", + brown: "Pigmento marrón", + green: "Pigment verde", + red: "Pigment rojo", + black: "Pigmento negro", + }, + pride_colorizer_: { + agender: "Pigmento agénero", + aroace: "Pigmento arroace", + aromantic: "Pigmento aromático", + asexual: "Pigmento asexual", + bisexual: "Pigmento bisexual", + demiboy: "Pigmento semichico", + demigirl: "Pigmento semichica", + gay: "Pigmento gay", + genderfluid: "Pigmento de género fluido", + genderqueer: "Pigmento de género queer", + intersex: "Pigmento intersexual", + lesbian: "Pigmento lesbian", + nonbinary: "Pigmento no binario", + pansexual: "Pigmento pansexual", + plural: "Pigmento plural", + transgender: "Pigmento transgénero", + }, + uuid_colorizer: "Pigmento destelloalma", + default_colorizer: "Pigmento vacante", + ancient_colorizer: "Pigmento antiguo", + creative_unlocker: { + "": "El cubo de media", + for_emphasis: "MEDIA INFINITA", + tooltip: "Consuma para descrubir todo conocimientos de %s.", + mod_name: "Hexcasting", + }, + lore_fragment: { + "": "Fragmento de relato", + all: "Parace que ya encontre todos los relatos que este mundo tiene que ofrecer.", + }, + }, + "entity.hexcasting": { + wall_scroll: "Pergamino colgante", + }, + "block.hexcasting": { + conjured_light: "Luz conjurada", + conjured_block: "Bloque conjurada", + directrix: { + empty: "Directora vacia", + redstone: "Directora de albañil", + boolean: "Directora de pastor", + }, + impetus: { + empty: "Impetuoso vacio", + rightclick: "Impetuoso de herrero", + look: "Impetuoso de flechero", + redstone: "Impetuoso de sacerdote", + }, + akashic_: { + record: "Registro akáshico", + bookshelf: "Estantería akáshica", + connector: "Ligadura akáshica", + }, + slate: { + "": "Pizarra", + blank: "Pizarra en blanco", + written: "Pizarra patronada", + }, + slate_: { + block: "Bloque de pizzara", + tiles: "Baldosas de pizzara", + bricks: "Ladrillos de pizarra", + bricks_small: "Ladrillos de pizarra pequeños", + pillar: "Pilar de pizarra", + }, + amethyst_: { + dust_block: "Bloque de polvo de amatista", + tiles: "Baldosas de amatista", + bricks: "Ladrillos de amatista", + bricks_small: "Ladrillos de amatista pequeños", + pillar: "Pilar de amatista", + }, + slate_amethyst_: { + tiles: "Baldosas de pizzara y amatista", + bricks: "Ladrillos de pizzara y amatista", + bricks_small: "Ladrillos de pizzara y amatista pequeños", + pillar: "Pilar de pizzara y amatista", + }, + scroll_paper: "Papel de pergamino", + ancient_scroll_paper: "Papel de pergamino antiguo", + scroll_paper_lantern: "Linterna de pergamino", + ancient_scroll_paper_lantern: "Linterna de pergamino antiguo", + amethyst_sconce: "Palmatoria de amatista", + edified_: { + log: "Tronco edificado", + log_amethyst: "Tronco edificado amatista", + log_aventurine: "Tronco edificado venturina", + log_citrine: "Tronco edificado citrino", + log_purple: "Tronco edificado morado", + wood: "Leño edificado", + planks: "Madera edificada", + panel: "Panel edificado", + tile: "Baldosas edificadas", + door: "Puerta edificada", + trapdoor: "Escotilla edificada", + stairs: "Escaleras edificadas", + slab: "Losa edificada", + button: "Botón edificado", + pressure_plate: "Placa de presión edificada", + fence: "Cerca edificada", + fence_gate: "Puerta de cerca edificada", + }, + stripped_edified_log: "Tronco edificado sin corteza", + stripped_edified_wood: "Leño edificado sin corteza", + amethyst_edified_leaves: "Hojas edificadas amatista", + aventurine_edified_leaves: "Hojas edificadas venturina", + citrine_edified_leaves: "Hojas edificadas citrino", + quenched_allay: "Allay templado", + quenched_allay_: { + tiles: "Baldosas de allay templado", + bricks: "Ladrillos de allay templado", + bricks_small: "Ladrillos de allay templado pequeños", + }, + }, + "effect.hexcasting": { + enlarge_grid: "Claridad", + shrink_grid: "Nublado", + }, + "item.minecraft.potion.effect": { + enlarge_grid: "Poción de claridad", + enlarge_grid_long: "Poción de claridad", + enlarge_grid_strong: "Poción de claridad", + shrink_grid: "Poción de nublado", + shrink_grid_long: "Poción de nublado", + shrink_grid_strong: "Poción de nublado", + }, + "item.minecraft.splash_potion.effect": { + enlarge_grid: "Poción de claridad arrojadiza", + enlarge_grid_long: "Poción de claridad arrojadiza", + enlarge_grid_strong: "Poción de claridad arrojadiza", + shrink_grid: "Poción de nublado arrojadiza", + shrink_grid_long: "Poción de nublado arrojadiza", + shrink_grid_strong: "Poción de nublado arrojadiza", + }, + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "Poción de claridad persistente", + enlarge_grid_long: "Poción de claridad persistente", + enlarge_grid_strong: "Poción de claridad persistente", + shrink_grid: "Poción de nublado persistente", + shrink_grid_long: "Poción de nublado persistente", + shrink_grid_strong: "Poción de nublado persistente", + }, + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "Flecha de claridad", + enlarge_grid_long: "Flecha de claridad", + enlarge_grid_strong: "Flecha de claridad", + shrink_grid: "Flecha de nublado", + shrink_grid_long: "Flecha de nublado", + shrink_grid_strong: "Flecha de nublado", + }, + "gui.hexcasting": { + spellcasting: "Cuadrícula Hex", + }, + "tag.hexcasting": { + staves: "Bastónes hex", + edified_logs: "Troncos edificados", + edified_planks: "Maderas edificadas", + phial_base: "Frasco vacio", + }, + "tag.item.hexcasting": { + brainswept_circle_components: "Componentes de circulo de cerebrobarrido", + directrices: "Directoras", + grants_root_advancement: "Concida progreso origen", + impeti: "Impetuosos", + seal_materials: "Materiales de sello", + }, + "emi.category.hexcasting": { + brainsweep: "Desollar mente", + "craft.battery": "Craftear frasco", + edify: "Edificar arbolito", + villager_leveling: "Comercio nivelando", + villager_profession: "Profesión de aldeano", + }, + "text.autoconfig.hexcasting": { + title: "Hexcasting Config", + category: { + common: "Común", + client: "Cliente", + server: "Servidor", + }, + option: { + common: { + dustMediaAmount: { + "": "Cantidad de media polvo", + "@Tooltip": "Cuanta media un polvo de amatista vale", + }, + shardMediaAmount: { + "": "Cantidad de media fragmento", + "@Tooltip": "Cuanta media un fragmento de amatista vale", + }, + chargedCrystalMediaAmount: { + "": "Cantidad de media crystal cargado", + "@Tooltip": "Cuanta media un fragmento de amatista crystal vale", + }, + mediaToHealthRate: { + "": "Media a Salud tasa", + "@Tooltip": "Cuantos puntos de media un mitad de corazon vale cuando lanzar desde PV", + }, + cypherCooldown: { + "": "Tiempo de reutilización de las cifra", + "@Tooltip": "Reutilización de una cifra en ticks", + }, + trinketCooldown: { + "": "Reutilización de baratija", + "@Tooltip": "Reutilización de una baratija en ticks", + }, + artifactCooldown: { + "": "Reutilización de artefacto", + "@Tooltip": "Reutilización de un artefacto en ticks", + }, + }, + client: { + ctrlTogglesOffStrokeOrder: { + "": "Control desactiva el orden de los trazos", + "@Tooltip": "Si la tecla de control *apaga* el gradiente de color sobre patrones", + }, + invertSpellbookScrollDirection: { + "": "Invetir libro de hechizos desplazar dirección", + "@Tooltip": "Si desplazarse hacia arriba (en lugar de hacia abajo) aumentará el índice de página del libro de hechizos, y viceversa", + }, + invertAbacusScrollDirection: { + "": "Invetir ábaco desplazar dirección", + "@Tooltip": "Si desplazarse hacia arriba (en lugar de hacia abajo) aumentará el índice de página del ábaco, y viceversa", + }, + gridSnapThreshold: { + "": "Limite de adhirir a la cuadricula", + "@Tooltip": "Cuando usando un bastón, la distancia que debes que ir para que un punto pasa al siguiente punto, donde 0.5 significa 50$ del camino (0.5-1)", + }, + clickingTogglesDrawing: { + "": "Clic alterna dibujando", + "@Tooltip": "Si haces click para empezar y para dibujando enves de hacer click y arrastar para dibujar", + }, + disableInworldScrolling: { + "": "Desactivar desplazamiento en-mundo", + "@Tooltip": "Desactivar usar desplazamiento para los libros de hechizos y los ábacos en el mundo normal, manteniendo el funcionamiento para los atajos de teclado y el desplazamiento en la pantalla del bastón", + }, + alwaysShowListCommas: { + "": "Mostrar siempre las comas de la lista", + "@Tooltip": "¿Se separarán todos los tipos de iotas con comas dentro de las listas? (Por normal, las iotas de patrones no usan comas)", + }, + }, + server: { + opBreakHarvestLevel: { + "": "Nivel de cosecha de rompter", + "@Tooltip": "El nivel de cosechar del Rotura Bloque hechizo.\n0 = madera, 1 = piedra, 2 = hierro, 3 = diamante, 4 = netherita.", + }, + maxOpCount: { + "": "Maxima cuneta de acciónes", + "@Tooltip": "El numero maximo de acción que puede se ejecutar en un tick, para evitar colgar el servidor.", + }, + maxSpellCircleLength: { + "": "Maximo longitud de círculo de hechizos", + "@Tooltip": "El numero maximo de pizzaras en un circilo de hechizos", + }, + actionDenyList: { + "": "Lista de acciones denegadas", + "@Tooltip": "Ubicaciones de recursos de acciones no permitidas. Intentar lanzar uno de estos resultará en un percance. Por ejemplo, hexcasting:get_caster evitará el Reflejo de mente.", + }, + circleActionDenyList: { + "": "Lista de acciones circulo denegadas", + "@Tooltip": "Ubicaciones de recursos de acciones no permitidas dentro de círculos. Intentar lanzar uno de estos desde un círculo resultará en un percance.", + }, + villagersOffendedByMindMurder: { + "": "Aldeanos ofendidos por asesinato mental", + "@Tooltip": "Si los aldeanos deberían enojarse con el jugador cuando otros aldeanos están desomente", + }, + scrollInjectionsRaw: { + "": "Inyection de pergaminos pesos", + "@Tooltip": "Mapa los nombres de las tablas de boting a la cantidad de patronoes por mundo en pergaminos que deven inclurse en ellas. Hay alreador un 50$ de posibilidad de obtener un pergamino en un baúl determinado aqui; una vez que se cumple, se generan entre 1 y esa cantida ded pergaminos.", + }, + amethystShardModification: { + "": "Cambio de tasa de caída de fragmentos de amatista", + "@Tooltip": "Cuánto aumenta/disminuye el número de fragmentos de amatista que caen de los cúmulos.", + }, + }, + }, + }, + "advancement.hexcasting:": { + root: { + "": "Estudio de Hexcasting", + desc: "Encuentra y mina una forma concentrada de media crecidendo profundo de la tierra.", + }, + creative_unlocker: { + "": "¡PODER INFINITO!", + desc: "", + }, + enlightenment: { + "": "", + desc: "", + }, + wasteful_cast: { + "": "", + desc: "", + }, + big_cast: { + "": "", + desc: "", + }, + y_u_no_cast_angy: { + "": "", + desc: "", + }, + opened_eyes: { + "": "", + desc: "", + }, + lore: { + "": "Relatos del Magificio", + desc: "", + }, + "lore/": { + cardamom1: { + "": "", + desc: "", + }, + cardamom2: { + "": "", + desc: "", + }, + cardamom3: { + "": "", + desc: "", + }, + cardamom4: { + "": "", + desc: "", + }, + cardamom5: { + "": "", + desc: "", + }, + experiment1: "", + experiment2: "", + inventory: "", + }, + }, + "stat.hexcasting": { + media_used: "", + media_overcast: "", + patterns_drawn: "", + spells_cast: "", + }, + "death.attack.hexcasting": { + overcast: { + "": "", + player: "", + }, + }, + "command.hexcasting": { + recalc: "", + pats: { + listing: "", + all: "", + "specific.success": "", + }, + brainsweep: { + "": "", + "fail.badtype": "", + "fail.already": "", + }, + }, + "matcher.hexcasting.pattern": { + title: "", + "title.styled": "", + description: "", + example: "", + }, + hexcasting: { + "pattern.unknown": "", + debug: { + media_withdrawn: "", + "media_withdrawn.with_dust": "", + media_inserted: "", + "media_inserted.with_dust": "", + all_media: "", + infinite_media: "", + }, + message: { + cant_overcast: "", + cant_great_spell: "", + }, + tooltip: { + spellbook: { + page: { + "": "", + sealed: "", + }, + page_with_name: { + "": "", + sealed: "", + }, + empty: { + "": "", + sealed: "", + }, + sealed: "", + }, + abacus: { + "": "%d", + reset: "Reset to 0", + "reset.nice": "", + }, + circle: { + no_exit: "", + many_exits: "", + no_closure: "", + }, + lens: { + "pattern.invalid": "", + bee: { + "": "", + single: "", + }, + "impetus.redstone.bound": { + "": "", + none: "", + }, + akashic: { + "bookshelf.location": "", + "record.count": { + "": "", + single: "", + }, + }, + }, + brainsweep: { + min_level: "", + level: "Level %s", + product: "", + }, + media: "", + media_amount: "", + "media_amount.advanced": "", + list_contents: "[%s]", + null_iota: "Null", + jump_iota: "", + pattern_iota: "", + boolean_true: "True", + boolean_false: "False", + }, + spelldata: { + onitem: "", + anything: "", + unknown: "", + "entity.whoknows": "", + "akashic.nopos": "", + }, + subtitles: { + casting: { + pattern: { + start: "", + add_segment: "", + }, + cast: { + normal: "", + spell: "", + hermes: "", + thoth: "", + }, + }, + ambiance: "", + "staff.reset": "", + abacus: { + "": "", + shake: "", + }, + "spellcircle.add_pattern": "", + "spellcircle.fail": "", + "scroll.dust": "t", + "scroll.scribble": "", + "impetus.fletcher.tick": "s", + "impetus.redstone.register": "", + "impetus.redstone.clear": "", + "lore_fragment.read": "", + "flight.ambience": "", + "flight.finish": "", + }, + attributes: { + grid_zoom: "", + scry_sight: "", + }, + action: { + "hexcasting:": { + "const/": { + "null": "", + "true": "", + "false": "", + "vec/": { + px: "", + py: "", + pz: "", + nx: "", + ny: "", + nz: "", + "0": "o", + }, + "double/": { + pi: "", + tau: "", + e: "", + }, + }, + get_caster: "Reflejo de mente", + "entity_pos/eye": "", + "entity_pos/foot": "II", + get_entity_look: "", + get_entity_height: "Stadiometer's Purification", + get_entity_velocity: "Pace Purification", + raycast: "Archer's Distillation", + "raycast/axis": "Architect's Distillation", + "raycast/entity": "Scout's Distillation", + "circle/": { + impetus_pos: "Waystone Reflection", + impetus_dir: "Lodestone Reflection", + "bounds/min": "Lesser Fold Reflection", + "bounds/max": "Greater Fold Reflection", + }, + append: "Integration Distillation", + unappend: "Derivation Decomposition", + index: "Selection Distillation", + singleton: "Single's Purification", + empty_list: "Vacant Reflection", + reverse: "Retrograde Purification", + last_n_list: "Flock's Gambit", + splat: "Flock's Disintegration", + index_of: "Locator's Distillation", + remove_from: "Excisor's Distillation", + slice: "Selection Exaltation", + replace: "Surgeon's Exaltation", + construct: "Speaker's Distillation", + deconstruct: "Speaker's Decomposition", + get_entity: "Entity Purification", + "get_entity/": { + animal: "Entity Purification: Animal", + monster: "Entity Purification: Monster", + item: "Entity Purification: Item", + player: "Entity Purification: Player", + living: "Entity Purification: Living", + }, + zone_entity: "Zone Distillation: Any", + "zone_entity/": { + animal: "Zone Distillation: Animal", + monster: "Zone Distillation: Monster", + item: "Zone Distillation: Item", + player: "Zone Distillation: Player", + living: "Zone Distillation: Living", + not_animal: "Zone Distillation: Non-Animal", + not_monster: "Zone Distillation: Non-Monster", + not_item: "Zone Distillation: Non-Item", + not_player: "Zone Distillation: Non-Player", + not_living: "Zone Distillation: Non-Living", + }, + swap: "Jester's Gambit", + rotate: "Rotation Gambit", + rotate_reverse: "Rotation Gambit II", + duplicate: "Gemini Decomposition", + over: "Prospector's Gambit", + tuck: "Undertaker's Gambit", + "2dup": "Dioscuri Gambit", + duplicate_n: "Gemini Gambit", + stack_len: "Flock's Reflection", + fisherman: "Fisherman's Gambit", + "fisherman/copy": "Fisherman's Gambit II", + swizzle: "Swindler's Gambit", + unique: "Uniqueness Purification", + and: "Conjunction Distillation", + or: "Disjunction Distillation", + xor: "Exclusion Distillation", + greater: "Maximus Distillation", + less: "Minimus Distillation", + greater_eq: "Maximus Distillation II", + less_eq: "Minimus Distillation II", + equals: "Equality Distillation", + not_equals: "Inequality Distillation", + not: "Negation Purification", + bool_coerce: "Augur's Purification", + "if": "Augur's Exaltation", + add: "Additive Distillation", + sub: "Subtractive Distillation", + mul: "Multiplicative Distillation", + div: "Division Distillation", + abs: "Length Purification", + pow: "Power Distillation", + floor: "Floor Purification", + ceil: "Ceiling Purification", + modulo: "Modulus Distillation", + construct_vec: "Vector Exaltation", + deconstruct_vec: "Vector Disintegration", + sin: "Sine Purification", + cos: "Cosine Purification", + tan: "Tangent Purification", + arcsin: "Inverse Sine Purification", + arccos: "Inverse Cosine Purification", + arctan: "Inverse Tangent Purification", + arctan2: "Inverse Tangent Purification II", + random: "Entropy Reflection", + logarithm: "Logarithmic Distillation", + coerce_axial: "Axial Purification", + read: "Scribe's Reflection", + "read/entity": "Chronicler's Purification", + "read/local": "Muninn's Reflection", + write: "Scribe's Gambit", + "write/entity": "Chronicler's Gambit", + "write/local": "Huginn's Gambit", + readable: "Auditor's Reflection", + "readable/entity": "Auditor's Purification", + writable: "Assessor's Reflection", + "writable/entity": "Assessor's Purification", + "akashic/read": "Akasha's Distillation", + "akashic/write": "Akasha's Gambit", + print: "Reveal", + beep: "Make Note", + explode: "Explosion", + "explode/fire": "Fireball", + add_motion: "Impulse", + blink: "Blink", + break_block: "Rotura Bloque", + place_block: "Place Block", + "craft/cypher": "Craft Cypher", + "craft/trinket": "Craft Trinket", + "craft/artifact": "Craft Artifact", + "craft/battery": "Craftear frasco", + recharge: "Recharge Item", + erase: "Erase Item", + create_water: "Create Water", + destroy_water: "Destroy Liquid", + ignite: "Ignite", + extinguish: "Extinguish Area", + conjure_block: "Conjure Block", + conjure_light: "Conjure Light", + bonemeal: "Overgrow", + edify: "Edificar arbolito", + colorize: "Internalize Pigment", + cycle_variant: "Caster's Glamour", + "sentinel/": { + create: "Summon Sentinel", + "create/great": "Summon Greater Sentinel", + destroy: "Banish Sentinel", + get_pos: "Locate Sentinel", + wayfind: "Wayfind Sentinel", + }, + "potion/": { + weakness: "White Sun's Nadir", + levitation: "Blue Sun's Nadir", + wither: "Black Sun's Nadir", + poison: "Red Sun's Nadir", + slowness: "Green Sun's Nadir", + regeneration: "White Sun's Zenith", + night_vision: "Blue Sun's Zenith", + absorption: "Black Sun's Zenith", + haste: "Red Sun's Zenith", + strength: "Green Sun's Zenith", + }, + flight: "Altiora", + "flight/range": "Anchorite's Flight", + "flight/time": "Wayfarer's Flight", + "flight/can_fly": "Aviator's Purification", + lightning: "Summon Lightning", + summon_rain: "Summon Rain", + dispel_rain: "Dispel Rain", + create_lava: "Create Lava", + "teleport/great": "Greater Teleport", + brainsweep: "Desollar mente", + eval: "Hermes' Gambit", + "eval/cc": "Iris' Gambit", + for_each: "Thoth's Gambit", + halt: "Charon's Gambit", + thanatos: "Thanatos' Reflection", + "interop/": { + "gravity/": { + get: "Gravitational Purification", + set: "Alter Gravity", + }, + "pehkui/": { + get: "Gulliver's Purification", + set: "Alter Scale", + }, + }, + }, + "book.hexcasting:": { + get_entity_height: "Stadiometer's Prfn.", + "get_entity/": { + animal: "Entity Prfn.: Animal", + monster: "Entity Prfn.: Monster", + item: "Entity Prfn.: Item", + player: "Entity Prfn.: Player", + living: "Entity Prfn.: Living", + }, + zone_entity: "Zone Dstl.: Any", + "zone_entity/": { + animal: "Zone Dstl.: Animal", + monster: "Zone Dstl.: Monster", + item: "Zone Dstl.: Item", + player: "Zone Dstl.: Player", + living: "Zone Dstl.: Living", + not_animal: "Zone Dstl.: Non-Animal", + not_monster: "Zone Dstl.: Non-Monster", + not_item: "Zone Dstl.: Non-Item", + not_player: "Zone Dstl.: Non-Player", + not_living: "Zone Dstl.: Non-Living", + }, + mul: "Multiplicative Dstl.", + div: "Division Dstl.", + arcsin: "Inverse Sine Prfn.", + arccos: "Inverse Cosine Prfn.", + arctan: "Inverse Tangent Prfn.", + arctan2: "Inverse Tan. Prfn. II", + "const/vec/": { + x: "Vector Rfln. +X/-X", + y: "Vector Rfln. +Y/-Y", + z: "Vector Rfln. +Z/-Z", + }, + "read/entity": "Chronicler's Prfn.", + bool_to_number: "Numerologist's Prfn.", + number: "Numerical Reflection", + mask: "Bookkeeper's Gambit", + }, + }, + "special.hexcasting:": { + number: "Numerical Reflection: %s", + mask: "Bookkeeper's Gambit: %s", + }, + "iota.hexcasting:": { + "null": { + "": "Null", + }, + double: { + "": "Number", + }, + boolean: { + "": "Boolean", + }, + entity: { + "": "Entity", + }, + list: { + "": "List", + }, + pattern: { + "": "Pattern", + }, + garbage: { + "": "Garbage", + }, + vec3: { + "": "Vector", + }, + }, + mishap: { + "": "%s: %s", + invalid_pattern: "That pattern isn't associated with any action", + unescaped: "Expected to evaluate a pattern, but evaluated %s instead", + not_enough_args: "expected %s or more arguments but the stack was only %s tall", + no_args: "expected %s or more arguments but the stack was empty", + wrong_dimension: "cannot see %s from %s", + entity_too_far: "%s is out of range", + immune_entity: "cannot alter %s", + no_item: "needs %s but got nothing", + "no_item.offhand": "needs %s in the other hand but got nothing", + bad_entity: "needs %s but got %s", + bad_brainsweep: "The %s rejected the being's mind", + already_brainswept: "The mind has already been used", + no_spell_circle: "%s requires a spell circle", + others_name: "Tried to invade the privacy of %s's soul", + "others_name.self": "Tried to divulge my Name too recklessly", + divide_by_zero: { + divide: "Attempted to divide %s by %s", + project: "Attempted to project %s onto %s", + exponent: "Attempted to raise %s to the %s", + logarithm: "Attempted to get the logarithm of %s in base %s", + zero: { + "": "zero", + power: "zeroth power", + vec: "the zero vector", + }, + power: "power of %s", + sin: "the sine of %s", + cos: "the cosine of %s", + }, + invalid_operator_args: { + one: "got an unexpected iota at index %d of the stack: %s", + many: "got %d unexpected iotas at indices %d-%d of the stack: %s", + }, + no_akashic_record: "No Akashic Record at %s", + disallowed: "has been disallowed by the server admins", + disallowed_circle: "has been disallowed in spell circles by the server admins", + invalid_spell_datum_type: "Tried to use a value of invalid type as a SpellDatum: %s (class %s). This is a bug in the mod.", + unknown: "threw an exception (%s). This is a bug in the mod.", + stack_size: "Exceeded the size limit of the stack", + bad_caster: "Tried to execute a pattern that requires a greater mind", + invalid_value: { + "": "expected %s at index %s of the stack, but got %s", + "class": { + double: "a number", + boolean: "a boolean", + vector: "a vector", + list: "a list", + pattern: "a pattern", + entity: { + "": "an entity", + item: "an item entity", + player: "a player", + living: "a living entity", + }, + entity_or_vector: "an entity or a vector", + unknown: "(unknown, uh-oh, this is a bug)", + }, + numvec: "a number or vector", + numlist: "an integer or list", + double: { + positive: { + "": "a positive number", + less: "a positive number less than %d", + "less.equal": "a positive number less than or equal to %d", + }, + between: "a number between %d and %d", + }, + int: { + "": "an integer", + positive: { + "": "a positive integer", + less: "a positive integer less than %d", + "less.equal": "a positive integer less than or equal to %d", + }, + between: "an integer between %d and %d", + }, + evaluatable: "something evaluatable", + bool_commute: "a boolean, 0, or 1", + }, + location_: { + too_far: "%s is out of range", + out_of_world: "%s is not within the world", + too_close_to_out: "%s is too close to the boundary of the world", + forbidden: "%s is forbidden to you", + bad_dimension: "This dimension forbids that action", + }, + bad_item: { + "": "needs %s but got %dx %s", + offhand: "needs %s in the other hand but got %dx %s", + iota: { + "": "a place to store iotas", + read: "a place to read iotas from", + write: "a place to write iotas to", + readonly: "a place that will accept %s", + }, + media: "a media-containing item", + media_for_battery: "a raw media item", + only_one: "exactly one item", + eraseable: "an eraseable item", + bottle: "a glass bottle", + rechargable: "a rechargable item", + colorizer: "a pigment", + variant: "an item with variants", + }, + bad_block: { + "": "Expected %s at %s, but got %s", + sapling: "a sapling", + replaceable: "somewhere to place a block", + }, + "circle.bool_directrix": { + no_bool: "the iota encountered at %s was %s, not a bool", + empty_stack: "the stack was empty at %s", + }, + }, + circles: { + no_exit: "The flow of media at %s could not find an exit", + many_exits: "The flow of media at %s had too many exits", + }, + landing: "I seem to have discovered a new method of magical arts, in which one draws patterns strange and wild onto a hexagonal grid. It fascinates me. I've decided to start a journal of my thoughts and findings.$(br2)$(l:https://forum.petra-k.at/index.php)Forum Link/$", + category: { + basics: { + "": "Getting Started", + desc: "The practitioners of this art would cast their so-called _Hexes by drawing strange patterns in the air with a $(l:items/staff)$(item)Staff/$ -- or craft $(l:items/hexcasting)$(item)powerful magical items/$ to do the casting for them. How might I do the same?", + }, + casting: { + "": "Hex Casting", + desc: "I've started to understand how the old masters cast their _Hexes! It's a bit complicated, but I'm sure I can figure it out. Let's see...", + }, + items: { + "": "Items", + desc: "I devote this section to the magical and mysterious items I might encounter in my studies.", + }, + greatwork: { + "": "The Great Work", + desc: "I have seen... so much. I have... experienced... annihilation and deconstruction and reconstruction. I have seen the atoms of the world screaming as they were inverted and subverted and demoted to energy. I have seen I have seen I have s$(k)get stick bugged lmao/$", + }, + lore: { + "": "Lore", + desc: "I have uncovered some letters and text not of direct relevance to my art. But, I think I may be able to divine some of the history of the world from these. Let me see...", + }, + interop: { + "": "Cross-Mod Compatibility", + desc: "It appears I have installed some mods Hexcasting interoperates with! I've detailed them here.", + }, + patterns: { + "": "Patterns", + desc: "A list of all the patterns I've discovered, as well as what they do.", + }, + spells: { + "": "Spells", + desc: "Patterns and actions that perform a magical effect on the world.", + }, + great_spells: { + "": "Great Spells", + desc: "The spells catalogued here are purported to be of legendary difficulty and power. They seem to have been recorded only $(l:items/scroll)sparsely/$ (for good reason, the texts claim). It's probably just the ramblings of extinct traditionalists, though -- a pattern's a pattern.$(br2)What could possibly go wrong?", + }, + }, + entry: { + media: "Media", + geodes: "Geodes", + couldnt_cast: "A Frustration", + start_to_see: "WHAT DID I SEE", + "101": "Hex Casting 101", + vectors: "A Primer On Vectors", + stack: "The Stack", + naming: "Naming Actions", + amethyst: "Amethyst", + staff: "Staves", + lens: "Scrying Lens", + jeweler_hammer: "Jeweler's Hammer", + thought_knot: "Thought-Knot", + focus: "Focus", + abacus: "Abacus", + spellbook: "Spellbook", + scroll: "Scrolls", + slate: "Slates", + hexcasting: "Casting Items", + phials: "Phials of Media", + potions: "Hex Potions", + pigments: "Pigments", + edified: "Edified Trees", + decoration: "Decorative Blocks", + the_work: "The Work", + brainsweeping: "On The Flaying of Minds", + spellcircles: "Spell Circles", + impetus: "Impeti", + directrix: "Directrices", + akashiclib: "Akashic Libraries", + quenching_allays: "Quenching Allays", + fanciful_staves: "Fanciful Staves", + readers_guide: "How to Read This Section", + basics_pattern: "Basic Patterns", + numbers: "Number Literals", + math: "Mathematics", + advanced_math: "Advanced Mathematics", + sets: "Sets", + consts: "Constants", + stackmanip: "Stack Manipulation", + logic: "Logical Operators", + entities: "Entities", + lists: "List Manipulation", + patterns_as_iotas: "Escaping Patterns", + readwrite: "Reading and Writing", + meta: "Meta-Evaluation", + circle_patterns: "Spell Circle Patterns", + akashic_patterns: "Akashic Patterns", + itempicking: "Working with Items", + basic_spell: "Basic Spells", + blockworks: "Block Manipulation", + nadirs: "Nadirs", + hexcasting_spell: "Crafting Casting Items", + sentinels: "Sentinels", + flights: "Flight", + weather_manip: "Weather Manipulation", + zeniths: "Zeniths", + lore: { + cardamom1: "Cardamom Steles, #1", + cardamom2: "Cardamom Steles, #2", + cardamom3: "Cardamom Steles, #3", + cardamom4: "Cardamom Steles, #4", + cardamom5: "Cardamom Steles, #5", + experiment1: "Wooleye Instance Notes", + experiment2: "Wooleye Interview Logs", + inventory: "Restoration Log #72", + }, + interop: { + "": "Cross-Mod Interations", + gravity: "Gravity Changer", + pehkui: "Pehkui", + }, + }, + page: { + media: { + "1": "_Media is a form of mental energy external to a mind. All living creatures generate trace amounts of _media when thinking about anything; after the thought is finished, the media is released into the environment.$(br2)The art of casting _Hexes is all about manipulating _media to do your bidding.", + "2": "_Media can exert influences on other media-- the strength and type of influence can be manipulated by drawing _media out into patterns.$(p)Scholars of the art used a concentrated blob of _media on the end of a stick: by waving it in the air in precise configurations, they were able to manipulate enough _media with enough precision to influence the world itself, in the form of a _Hex.", + "3": "Sadly, even a fully sentient being (like myself, presumably) can only generate miniscule amounts of _media. It would be quite impractical to try and use my own brainpower to cast Hexes.$(br2)But legend has it that there are underground deposits where _media slowly accumulates, growing into crystalline forms.$(p)If I could just find one of those...", + }, + geodes: { + "1": "Aha! While mining deep underground, I found an enormous geode resonating with energy-- energy which pressed against my skull and my thoughts. And now, I hold that pressure in my hand, in solid form. That proves it. This $(italic)must/$ be the place spoken about in legends where _media accumulates.$(br2)These $(l:items/amethyst)$(item)amethyst crystals/$ must be a $(l:items/amethyst)$(thing)convenient, solidified form of _Media/$.", + "2": "It appears that, in addition to the $(l:items/amethyst)$(item)Amethyst Shards/$ I have seen in the past, these crystals can also drop bits of powdered $(l:items/amethyst)$(item)Amethyst Dust/$, as well as these $(l:items/amethyst)$(item)Charged Amethyst Crystals/$. It looks like I'll have a better chance of finding the $(l:items/amethyst)$(item)Charged Amethyst Crystals/$ by using a Fortune pickaxe.", + "3": "As I take the beauty of the crystal in, I can feel connections flashing wildly in my mind. It's like the _media in the air is entering me, empowering me, elucidating me... It feels wonderful.$(br2)Finally, my study into the arcane is starting to make some sense!$(p)Let me reread those old legends again, now that I know what I'm looking at.", + }, + couldnt_cast: { + "1": "Argh! Why won't it let me cast the spell?!$(br2)The scroll I found rings with authenticity. I can $(italic)feel/$ it humming in the scroll-- the pattern is true, or as true as it can be. The spell is $(italic)right there/$.$(p)But it feels as if it's on the other side of some thin membrane. I called it-- it tried to manifest-- yet it $(italic)COULD NOT/$.", + "2": "It felt like the barrier may have weakened ever so slightly from the force that I exerted on the spell; yet despite my greatest efforts-- my deepest focus, my finest amethyst, my precisest drawings-- it $(italic)refuses/$ to cross the barrier. It's maddening.$(p)$(italic)This/$ is where my arcane studies end? Cursed by impotence, cursed to lose my rightful powers?$(br2)I should take a deep breath. I should meditate on what I have learned, even if it wasn't very much...", + "3": "...After careful reflection... I have discovered a change in myself.$(p)It seems... in lieu of $(l:items/amethyst)$(item)amethyst/$, I've unlocked the ability to cast spells using my own mind and life energy-- just as I read of in the legends of old.$(p)I'm not sure why I can now. It's just... the truth-knowledge-burden was always there, and I see it now. I know it. I bear it.$(br2)Fortunately, I feel my limits as well-- I would get approximately two $(l:items/amethyst)$(item)Charged Amethyst/$'s worth of _media out of my health at its prime.", + "4": "I shudder to even consider it-- I've kept my mind mostly intact so far, in my studies. But the fact is-- I form one side of a tenuous link.$(p)I'm connected to some other side-- a side whose boundary has thinned from that trauma. A place where simple actions spell out eternal glory.$(p)Is it so wrong, to want it for myself?", + }, + start_to_see: { + "1": "The texts weren't lying. Nature took its due.", + "2": "That... that was...$(p)...that was one of the $(italic)worst/$ things I've $(italic)ever/$ experienced. I offered my plan to Nature, and got a firm smile and a tearing sensation in return-- a piece of myself breaking away, like amethyst dust in the rain.$(p)I feel lucky to have $(italic)survived/$, much less have the sagacity to write this-- I should declare the matter closed, double-check my math before I cast any more _Hexes, and never make such a mistake again.", + "3": "...But.$(br2)But for the scarcest instant, that part of myself... it $(italic)saw/$... $(l:greatwork/the_work)$(thing)something/$. A place-- a design, perhaps? (Such distinctions didn't seem to matter in the face of... that.)$(p)And a... a membrane-barrier-skin-border, separating myself from a realm of raw thought-flow-light-energy. I remember-- I saw-thought-recalled-felt-- the barrier fuzzing at its edges, just so slightly.$(p)I wanted $(italic)through./$", + "4": "I shouldn't. I $(italic)know/$ I shouldn't. It's dangerous. It's too dangerous. The force required... I'd have to bring myself within a hair's breadth of Death itself with a $(italic)single stroke/$.$(br2)But I'm. So. $(italic)Close/$.$(p)$(italic)This/$ is the culmination of my art. This is the $(#54398a)Enlightenment/$ I've been seeking. $(br2)I want more. I need to see it again. I $(italic)will/$ see it.$(p)What is my mortal mind against immortal glory?", + }, + casting: { + overview: { + "1": "I believe it's good to always start off on the right foot. So, I've compiled the patterns for a _Hex that will cause a modest explosion at the position I am looking at. I believe examining the inner workings of this _Hex will be quite edifying.", + }, + grid: { + "1": "I will generally provide my patterns to Nature via my $(l:items/staff)$(item)Staff/$. Pressing $(thing)$(k:use)/$ with one in my hand will cause a hexagonal grid of dots to appear in front of me. I can then click, drag from dot to dot, and release to draw patterns.$(br2)Once I submit a pattern, it is executed (see the next chapter).", + "2": "Pressing $(thing)$(k:escape)/$ saves and closes the grid; when I next use my staff, all my patterns and iotas will still be there.$(br2)Should I wish to reset my casting state, I can do so by sneaking while opening the grid.", + }, + "patterns&actions": { + "1": "$(thing)Patterns/$ are paths traced through the grid of _media. I believe the sixfold symmetry of patterns is what gives my art its name.$(br2)$(thing)Actions/$, meanwhile, are what patterns $(italic)do/$.", + "2": "The difference is similar to the difference between $(italic)words/$ and $(italic)meanings/$. Any jumble of letters forms a word, but most of them (like \"xnopyt\") don't mean anything. Similarly, any squiggle yanked through the _media is technically a pattern, but most of them won't do anything.", + "3": "Actions are somewhat like commands to the grand systems rules that govern the universe (which I have seen some texts personify as \"Nature.\"). They tend to do one of a few things:$(li)Gather some information about the world, such as finding the position of a entity.$(li)Manipulate the info gathered, like finding the distance between two positions.$(li)Perform some magical effect on the world, like summoning lightning or an explosion.$(br)These last kinds of actions are called \"spells.\", and are generally what attract people to the art.", + "4": "A _Hex, then, is a sequence of valid patterns presented to Nature in sequence. Nature interprets each of these patterns one-by-one and, if it understands, changes the world to my whims. (Or, what it thinks my whims are.)", + "5": "Although some actions can be performed easily, some require a payment in the form of coalesced _media. I believe the concentrated mental energy is used as a sort of argument to Nature, convincing it that it should indeed do as I ask. Most spells require this kind of payment, but a few non-spell actions do too.$(br2)I've recorded the costs, if any, of each action on their respective pages.", + }, + iotas: { + "1": "The \"nouns\" in Nature's language are called $(thing)iotas/$. At its most basic level, Hexcasting is the art of manipulating iotas.$(br2)Iotas come in many different types:$(li)Numbers (which some legends called \"doubles\").$(li)Vectors, a collection of three numbers representing a position, movement, or direction.$(li)Booleans or \"bools\" for short, representing an abstract True or False.$(li)Entities, like myself, chickens, and minecarts.", + "2": "$(li)Influences, peculiar types of iota that seem to represent abstract ideas.$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$.$(li)A list of several of the above, gathered into a single iota.", + "3": "Generally, I provide iotas to actions. For example, take $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. This spell requires a number iota, to indicate the strength, and a vector iota, to indicate the location.$(br2)Or, take $(l:patterns/basic#hexcasting:get_pos)$(action)Compass Purification/$. This takes an entity iota and transforms it into a vector iota, representing the position of that entity.", + }, + }, + "101": { + "1": "Casting a _Hex is quite difficult-- no wonder this art was lost to time! I'll have to re-read my notes carefully.$(br2)I can start a _Hex by pressing $(k:use) with a $(l:items/staff)$(item)Staff/$ in my hand-- this will cause a hexagonal grid of dots to appear in front of me. Then I can click and drag from dot to dot to draw patterns in the _media of the grid; finishing a pattern will run its corresponding action (more on that later).", + "2": "Once I've drawn enough patterns to cast a spell, the grid will disappear as the _media I've stored up is released. Holding $(k:sneak) while using my $(l:items/staff)$(item)staff/$ will also clear the grid.$(br2)So how do patterns work? In short:$(li)$(italic)Patterns/$ will execute...$(li)$(italic)Actions/$, which manipulate...$(li)$(l:casting/stack)$(italic)The Stack/$, which is a list of...$(li)$(italic)Iotas/$, which are simply units of information.", + "3": "First, $(thing)patterns/$. These are essential-- they're what I use to manipulate the _media around me. Certain patterns, when drawn, will cause $(thing)actions/$ to happen. Actions are what actually $(italic)do/$ the magic; all patterns influence _media in particular ways, and when those influences end up doing something useful, we call it an action.$(br2)_Media can be fickle: if I draw an invalid pattern, I'll get some $(l:casting/influences)$(action)garbage/$ result somewhere on my stack (read on...)", + "4.header": "An Example", + "4": "It's interesting to note that the $(italic)rotation/$ of a pattern doesn't seem to matter at all. These two patterns both perform an action called $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, for example.", + "5": "A _Hex is cast by drawing (valid) actions in sequence. Each action might do one of a few things:$(li)Gather some information about the environment, leaving it on the top of the stack;$(li)manipulate the info gathered (e.g. adding two numbers); or$(li)perform some magical effect, like summoning lightning or an explosion. (These actions are called \"spells.\")$(p)When I start casting a _Hex, it creates an empty stack. Actions manipulate the top of that stack.", + "6": "For example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ will create an iota representing $(italic)me/$, the caster, and add it to the top of the stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$ will take the iota at the top the stack, if it represents an entity, and transform it into an iota representing that entity's location.$(br2)So, drawing those patterns in that order would result in an iota on the stack representing my position.", + "7": "$(thing)Iotas/$ can represent things like myself or my position, but there are several other types I can manipulate with $(thing)Actions/$. Here's a comprehensive list:$(li)Numbers (which some legends called \"doubles\");$(li)Vectors, a collection of three numbers representing a position, movement, or direction in the world;$(li)Booleans or \"bools\" for short, representing an abstract True or False,", + "8": "$(li)Entities, like myself, chickens, and minecarts;$(li)Influences, peculiar types of iota that seem to represent abstract ideas;$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$; and$(li)A list of several of the above, gathered into a single iota.", + "9": "Of course, there's no such thing as a free lunch. All spells, and certain other actions, require _media as payment.$(br2)The best I can figure, a _Hex is a little bit like a plan of action presented to Nature-- in this analogy, the _media is used to provide the arguments to back it up, so Nature will accept your plan and carry it out.", + "10": "That aside, it doesn't seem like anyone has done much research on exactly how $(italic)much/$ any particular piece of $(l:items/amethyst)$(item)amethyst/$ is valued. The best I can tell, an $(l:items/amethyst)$(item)Amethyst Shard/$ is worth about five pieces of $(l:items/amethyst)$(item)Amethyst Dust/$, and a $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ is worth about ten.$(br2)Strangely enough, it seems like no other form of $(l:items/amethyst)$(item)amethyst/$ is suitable to be used in the casting of a _Hex. I suspect that whole blocks or crystals are too solid to be easily unraveled into _media.", + "11": "It's also worth noting that each action will consume the _media it needs immediately, rather than all at once when the Hex finishes. Also, an action will always consume entire items-- an action that only requires one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of _media will consume an entire $(l:items/amethyst)$(item)Charged Amethyst Crystal/$, if that's all that's present in my inventory.$(br2)Thus, it might be a good idea to bring dust for spellcasting too-- waste not, want not...", + "12": "I should also be careful to make sure I actually have enough Amethyst in my inventory-- some old texts say that Nature is happy to use one's own mind as payment instead. They describe the feeling as awful but strangely euphoric, \"[...] an effervescent dissolution into light and energy...\" Perhaps that's why all the old practitioners of the art went mad. I can't imagine burning pieces of my mind for power is $(italic)healthy/$.", + "13": "Maybe something's changed, though. In my experiments, I've never managed to do it; if I run out of _media, the spell will simply fail to cast, as if some barrier is blocking it from harming me. $(br2)It would be interesting to get to the bottom of that mystery, but for now I suppose it'll keep me safe.", + "14": "I have also found an amusing tidbit on why so many practitioners of magic in general seem to go mad, which I may like as some light and flavorful reading not canonical to my world.$(br2)$(italic)Content Warning: some body horror and suggestive elements./$", + "14.link_text": "Goblin Punch", + "15": "Finally, it seems spells have a maximum range of influence, about 32 blocks from my position. Trying to affect anything outside of that will cause the spell to fail.$(br2)Despite this, if I have a player's reference, I can affect them from anywhere. This only applies to affecting them directly, though; I cannot use this to affect the world around them if they're outside of my range.$(br)I ought to be careful when giving out a reference like that. While friendly _Hexcasters could use them to great effect and utility, I shudder to think of what someone malicious might do with this.", + }, + vectors: { + "1": "It seems I will need to be adroit with vectors if I am to get anywhere in my studies. I have compiled some resources here on vectors if I find I do not know how to work with them.$(br2)First off, an enlightening video on the topic.", + "2": "Additionally, it seems that the mages who manipulated $(thing)Psi energy/$ (the so-called \"spellslingers\"), despite their poor naming sense, had some quite-effective lessons on vectors to teach their acolytes. I've taken the liberty of linking to one of their texts on the next page.$(br2)They seem to have used different language for their spellcasting:$(li)A \"Spell Piece\" was their name for an action;$(li)a \"Trick\" was their name for a spell; and$(li)an \"Operator\" was their name for a non-spell action.", + "3": "Link here.", + }, + mishaps: { + "1": "Unfortunately, I am not (yet) a perfect being. I make mistakes from time to time in my study and casting of _Hexes; for example, misdrawing a pattern, or trying to an invoke an action with the wrong iotas. And Nature usually doesn't look too kindly on my mistakes-- causing what is called a $(italic)percance/$.", + "2": "A pattern that causes a percance will glow red in my grid. Depending on the type of mistake, I can also expect a certain deleterious effect and a spray of red and colorful sparks as the mishandled _media curdles into light of a given color.", + "3": "Fortunately, although the bad effects of percances are certainly $(italic)annoying/$, none of them are especially destructive in the long term. Nothing better to do than dust myself off and try again ... but I should strive for better anyways.$(br2)Following is a list of percances I have compiled.", + "invalid_pattern.title": "Invalid Pattern", + invalid_pattern: "The pattern drawn is not associated with any action.$(br2)Causes yellow sparks, and a $(l:casting/influences)$(action)Garbage/$ will be pushed to the top of my stack.", + "not_enough_iotas.title": "Not Enough Iotas", + not_enough_iotas: "The action required more iotas than were on the stack.$(br2)Causes light gray sparks, and as many $(l:casting/influences)$(action)Garbages/$ as would be required to fill up the argument count will be pushed.", + "stack_size.title": "Too Many Iotas", + stack_size: "I tried to cast a spell which exceeded the size limit of the stack.$(br2)Causes black sparks, and my entire stack will be replaced with a single $(l:casting/influences)$(action)Garbage/$.", + "incorrect_iota.title": "Incorrect Iota", + incorrect_iota: "The action that was executed expected an iota of a certain type for an argument, but it got something invalid. If multiple iotas are invalid, the error message will only tell me about the error deepest in the stack.$(br2)Causes dark gray sparks, and the invalid iota will be replaced with $(l:casting/influences)$(action)Garbage/$.", + "vector_out_of_range.title": "Vector Out of Ambit", + vector_out_of_range: "The action tried to affect the world at a point that was out of my range.$(br2)Causes magenta sparks, and the items in my hands will be yanked out and flung towards the offending location.", + "entity_out_of_range.title": "Entity Out of Ambit", + entity_out_of_range: "The action tried to affect an entity that was out of my range.$(br2)Causes pink sparks, and the items in my hands will be yanked out and flung towards the offending entity.", + "entity_immune.title": "Entity is Immune", + entity_immune: "The action tried to affect an entity that cannot be altered by it.$(br2)Causes blue sparks, and the items in my hands will be yanked out and flung towards the offending entity.", + "math_error.title": "Mathematical Error", + math_error: "The action did something offensive to the laws of mathematics, such as dividing by zero.$(br2)Causes red sparks, pushes a $(l:casting/influences)$(action)Garbage/$ to my stack, and my mind will be ablated, stealing half the vigor I have remaining. It seems that Nature takes offense to such operations, and divides $(italic)me/$ in retaliation.", + "incorrect_item.title": "Incorrect Item", + incorrect_item: "The action requires some sort of item, but the item I supplied was not suitable.$(br2)Causes brown sparks. If the offending item was in my hand, it will be flung to the floor. If it was in entity form, it will be flung in the air.", + "incorrect_block.title": "Incorrect Block", + incorrect_block: "The action requires some sort of block at a target location, but the block supplied was not suitable.$(br2)Causes bright green sparks, and causes an ephemeral explosion at the given location. The explosion doesn't seem to harm me, the world, or anything else though; it's just startling.", + "true_name.title": "Transgress Other", + true_name: "I attempted to $(l:patterns/readwrite#hexcasting:write)$(action)save a reference/$ to another player to a permanent medium.$(br2)Causes black sparks, and robs me of my sight for approximately one minute.", + "disabled.title": "Disallowed Action", + disabled: "I tried to cast an action that has been disallowed by a server administrator.$(br2)Causes black sparks.", + "other.title": "Catastrophic Failure", + other: "A bug in the mod caused an iota of an invalid type or otherwise caused the spell to crash. $(l:https://github.com/gamma-delta/HexMod/issues)Please open a bug report!/$$(br2)Causes black sparks.", + }, + stack: { + "1": "A $(thing)Stack/$, also known as a \"LIFO\", is a concept borrowed from computer science. In short, it's a collection of things designed so that you can only interact with the most recently used thing.$(br2)Think of a stack of plates, where new plates are added to the top: if you want to interact with a plate halfway down the stack, you have to remove the plates above it in order to get ahold of it.", + "2": "Because a stack is so simple, there's only so many things you can do with it:$(li)$(italic)Adding something to it/$, known formally as pushing,$(li)$(italic)Removing the last added element/$, known as popping, or$(li)$(italic)Examining or modifying the last added element/$, known as peeking.$(br)We call the last-added element the \"top\" of the stack, in accordance with the dinner plate analogy.$(p)As an example, if we push 1 to a stack, then push 2, then pop, the top of the stack is now 1.", + "3": "Actions are (on the most part) restricted to interacting with the casting stack in these ways. They will pop some iotas they're interested in (known as \"arguments\" or \"parameters\"), process them, and push some number of results.$(br2)Of course, some actions (e.g. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$) might pop no arguments, and some actions (particularly spells) might push nothing afterwards.", + "4": "Even more complicated actions can be expressed in terms of pushing, popping, and peeking. For example, $(l:patterns/stackmanip#hexcasting:swap)$(action)Jester's Gambit/$ swaps the top two items of the stack. This can be thought of as popping two items and pushing them in opposite order. For another, $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Gemini Decomposition/$ duplicates the top of the stack-- in other words, it peeks the stack and pushes a copy of what it finds.", + }, + naming: { + "1": "The names given to actions by the ancients were certainly peculiar, but I think there's a certain kind of logic to them.$(br2)There seem to be certain groups of actions with common names, named for the number of iotas they remove from and add to the stack.", + "2": "$(li)A $(thing)Reflection/$ pops nothing and pushes one iota.$(li)A $(thing)Purification/$ pops one and pushes one.$(li)A $(thing)Distillation/$ pops two and pushes one.$(li)An $(thing)Exaltation/$ pops three or more and pushes one.$(li)A $(thing)Decomposition/$ pops one argument and pushes two.$(li)A $(thing)Disintegration/$ pops one and pushes three or more.$(li)Finally, a $(thing)Gambit/$ pushes or pops some other number (or rearranges the stack in some other manner).", + "3": "Spells seem to be exempt from this nomenclature and are more or less named after what they do-- after all, why call it a $(action)Demoman's Gambit/$ when you could just say $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$?", + }, + mishaps2: { + "1": "I have discovered new and horrifying modes of failure. I must not succumb to them.", + "bad_mindflay.title": "Desomente inerte", + bad_mindflay: "Attempted to flay the mind of something that I have either already used, or of a character not suitable for the target block.$(br2)Causes dark green sparks, and kills the subject. If a villager sees that, I doubt they would look on it favorably.", + "no_circle.title": "Lack Spell Circle", + no_circle: "Tried to cast an action requiring a spell circle without a spell circle.$(br2)Causes light blue sparks, and upends my inventory onto the ground.", + "no_record.title": "Lack Akashic Record", + no_record: "Tried to access an $(l:greatwork/akashiclib)$(item)Akashic Record/$ at a location where there isn't one.$(br2)Causes purple sparks, and steals away some of my experience.", + }, + amethyst: { + dust: "It seems that I'll find three different forms of amethyst when breaking a crystal inside a geode. The smallest denomination seems to be a small pile of shimmering dust, worth a relatively small amount of _media.", + shard: "The second is a whole shard of amethyst, of the type non-_Hexcasters might be used to. This has about as much _media inside as five $(l:items/amethyst)$(item)Amethyst Dust/$.", + crystal: "Finally, I'll rarely find a large crystal crackling with energy. This has about as much _media inside as ten units of $(l:items/amethyst)$(item)Amethyst Dust/$ (or two $(l:items/amethyst)$(item)Amethyst Shards/$).", + lore: "$(italic)The old man sighed and raised a hand toward the fire. He unlocked a part of his brain that held the memories of the mountains around them. He pulled the energies from those lands, as he learned to do in Terisia City with Drafna, Hurkyl, the archimandrite, and the other mages of the Ivory Towers. He concentrated, and the flames writhed as they rose from the logs, twisting upon themselves until they finally formed a soft smile./$", + }, + staff: { + "1": "A $(l:items/staff)$(item)Staff/$ is my entry point into casting all _Hexes, large and small. By holding it and pressing $(thing)$(k:use)/$, I begin casting a _Hex; then I can click and drag to draw patterns.$(br2)It's little more than a chunk of _media on the end of a stick; that's all that's needed, after all.", + "crafting.header": "Staves", + "crafting.desc": "$(italic)Don't fight; flame, light; ignite; burn bright./$", + }, + lens: { + "1": "_Media can have peculiar effects on any type of information, in specific circumstances. Coating a glass in a thin film of it can lead to ... elucidating insights.$(br2)By holding a $(l:items/lens)$(item)Scrying Lens/$ in my hand, certain blocks will display additional information when I look at them.", + "2": "For example, looking at a piece of $(item)Redstone/$ will display its signal strength. I suspect I will discover other blocks with additional insight as my studies into my art progress.$(br2)In addition, holding it while casting using a $(l:items/staff)$(item)Staff/$ will shrink the spacing between dots, allowing me to draw more on my grid.$(br2)I can also wear it on my head as a strange sort of monocle.", + "crafting.desc": "$(italic)You must learn... to see what you are looking at./$", + }, + thought_knot: { + "1": "The forgetful often tie a piece of string about their finger to help them remember something important. I believe this idea might be of use in my art. A specially knotted piece of string should be able to hold a single iota stably, irregardless of my stack.$(br2)I will call my invention a $(item)Thought-Knot/$.", + "2": "When I craft it, it stores no iota. Using $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ while holding a $(item)Thought-Knot/$ in my other hand will remove the top of the stack and save it into the $(item)Thought-Knot/$. Using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will copy whatever iota's in the $(item)Thought-Knot/$ and add it to the stack.$(br2)Once a $(item)Thought-Knot/$ has been written to, the string is indelibly tangled; the iota can be read any number of times, but there is no way to erase or overwrite it. Fortunately, they are not expensive.", + "3": "Also, if I store an entity in a $(item)Thought-Knot/$ and try to recall it after the referenced entity has died or otherwise disappeared, the $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will add $(l:casting/influences)$(thing)Null/$ to the stack instead.", + "crafting.desc": "$(italic)How would you feel if someone saw you wearing a sign that said, \"I am dashing and handsome?\"/$", + }, + focus: { + "1": "A $(item)Focus/$ is like a $(l:items/thought_knot)$(item)Thought-Knot/$, in that iota can be written to or read from it. However, the advantage of a focus is that it is $(italic)reusable/$. If I make a mistake in the iota I write to a $(item)Focus/$, I can simply cast $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ again and write over the iota inside.", + "2": "If I wish to protect a $(l:items/focus)$(item)focus/$ from accidentally being overwritten, I can seal it with wax by crafting it with a $(item)Honeycomb/$. Attempting to use $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ on a sealed focus will fail.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove this seal along with the contents.", + "3": "Indeed, the only advantage of my $(l:items/thought_knot)$(item)Thought-Knot/$s have over $(item)Foci/$ is that $(item)Foci/$ are more expensive to produce. My research indicates that the early practitioners of the art used exclusively $(item)Foci/$, with the $(l:items/thought_knot)$(item)Thought-Knot/$ being an original creation of mine.$(br2)Whoever those ancient people were, they must have been very prosperous.", + "crafting.desc": "$(italic)Poison apples, poison worms./$", + }, + abacus: { + "1": "Although there are $(l:patterns/numbers)$(action)patterns for drawing numbers/$, I find them ... cumbersome, to say the least.$(br2)Fortunately, the old masters of my craft invented an ingenious device called an $(l:items/abacus)$(item)Abacus/$ to provide numbers to my casting. I simply set the number to what I want, then read the value using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$, just like I would read a $(l:items/thought_knot)$(item)Thought-Knot/$ or $(l:items/focus)$(item)Focus/$.", + "2": "To operate one, I simply hold it, sneak, and scroll. If in my main hand, the number will increment or decrement by 1, or 10 if I am also holding $(k:sprint). If in my off hand, the number will increment or decrement by 0.1, or 0.001 if I am also holding $(k:sprint).$(br2)I can shake the abacus to reset it to zero by sneak-right-clicking.", + "crafting.desc": "$(italic)Mathematics? That's for eggheads!/$", + }, + spellbook: { + "1": "A $(l:items/spellbook)$(item)Spellbook/$ is the culmination of my art-- it acts like an entire library of $(l:items/focus)$(item)Foci/$. Up to $(thing)sixty-four/$ of them, to be exact.$(br2)Each page can hold a single iota, and I can select the active page (the page that iotas are saved to and copied from) by sneak-scrolling while holding it, or simply holding it in my off-hand and scrolling while casting a _Hex.", + "2": "Like a $(l:items/focus)$(item)Focus/$, there exists a simple method to prevent accidental overwriting. Crafting it with a $(item)Honeycomb/$ will lacquer the current page, preventing $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ from modifying its contents. Also like a $(l:items/focus)$(item)Focus/$, using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove the lacquer along with the page's contents.$(br2)I can also name each page individually in an anvil. Naming it will change only the name of the currently selected page, for easy browsing.", + "crafting.desc": "$(italic)Wizards love words. Most of them read a great deal, and indeed one strong sign of a potential wizard is the inability to get to sleep without reading something first.", + }, + scroll: { + "1": "A $(l:items/scroll)$(item)Scroll/$ is a convenient method of sharing a pattern with others. I can copy a pattern onto one with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$, after which it will display in a tooltip.$(br2)I can also place them on the wall as decoration or edification, like a painting, in sizes from 1x1 to 3x3 blocks. Using $(l:items/amethyst)$(item)Amethyst Dust/$ on such a scroll will have it display the stroke order.", + "2": "In addition, I can also find so-called $(l:items/scroll)$(item)Ancient Scrolls/$ in the dungeons and strongholds of the world. These contain the stroke order of $(thing)Great Spells/$, powerful magicks rumored to be too powerful for the hands and minds of mortals...$(br2)If those \"mortals\" couldn't cast them, I'm not sure they deserve to know them.", + "crafting.desc": "$(italic)I write upon clean white parchment with a sharp quill and the blood of my students, divining their secrets./$", + }, + slate: { + "1": "$(l:items/slate)$(item)Slates/$ are similar to $(l:items/scroll)$(item)Scrolls/$; I can copy a pattern to them and place them in the world to display the pattern.$(br2)However, I have read vague tales of grand assemblies of $(l:items/slate)$(item)Slates/$, used to cast $(l:greatwork/spellcircles)$(thing)great rituals/$ more powerful than can be handled by a $(l:items/staff)$(item)Staff/$.", + "2": "Perhaps this knowledge will be revealed to me with time. But for now, I suppose they make a quaint piece of decor.$(br2)At the least, they can be placed on any side of a block, unlike $(l:items/scroll)$(item)Scrolls/$.", + "crafting.desc": "$(italic)This is the letter \"a.\" Learn it./$", + "3": "I'm also aware of other types of $(l:items/slate)$(item)Slates/$, slates that do not contain patterns but seem to be inlaid with other ... strange ... oddities. It hurts my brain to think about them, as if my thoughts get bent around their designs, following their pathways, bending and wefting through their labyrinthine depths, through and through and through channeled through and processed and--$(br2)... I almost lost myself. Maybe I should postpone my studies of those.", + }, + hexcasting: { + "1": "Although the flexibility of casting _Hexes \"on the go\" with my $(l:items/staff)$(item)Staff/$ is quite helpful, it's a huge pain to have to wave it around repeatedly just to accomplish a basic task. If I could save a common spell for later reuse, it would simplify things a lot-- and allow me to share my _Hexes with friends, too.", + "2": "To do this, I can craft one of three types of magic items: $(l:items/hexcasting)$(item)Cyphers/$, $(l:items/hexcasting)$(item)Trinkets/$, or $(l:items/hexcasting)$(item)Artifacts/$. All of them hold the patterns of a given _Hex inside, along with a small battery containing _media.$(br2)Simply holding one and pressing $(thing)$(k:use)/$ will cast the patterns inside, as if the holder had cast them out of a staff, using its internal battery.", + "3": "Each item has its own quirks:$(br2)$(l:items/hexcasting)$(item)Cyphers/$ are fragile, destroyed after their internal _media reserves are gone, and $(italic)cannot/$ be recharged;$(br2)$(l:items/hexcasting)$(item)Trinkets/$ can be cast as much as the holder likes, as long as there's enough _media left, but become useless afterwards until recharged;", + "4": "$(l:items/hexcasting)$(item)Artifacts/$ are the most powerful of all-- after their _media is depleted, they can use $(l:items/amethyst)$(item)Amethyst/$ from the holder's inventory to pay for the _Hex, just as I do when casting with a $(l:items/staff)$(item)Staff/$. Of course, this also means the spell might consume their mind if there's not enough $(l:items/amethyst)$(item)Amethyst/$.$(br2)Once I've made an empty magic item in a mundane crafting bench, I infuse the _Hex into it using (what else but) a spell appropriate to the item. $(l:patterns/spells/hexcasting)I've catalogued the patterns here./$", + "5": "Each infusion spell requires an entity and a list of patterns on the stack. The entity must be a _media-holding item entity (i.e. $(l:items/amethyst)$(item)amethyst/$ crystals, dropped on the ground); the entity is consumed and forms the battery.$(br2)Usefully, it seems that the _media in the battery is not consumed in chunks as it is when casting with a $(l:items/staff)$(item)Staff/$-- rather, the _media \"melts down\" into one continuous pool. Thus, if I store a _Hex that only costs one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of media, a $(l:items/amethyst)$(item)Charged Crystal/$ used as the battery will allow me to cast it 10 times.", + "crafting.desc": "$(italic)We have a saying in our field: \"Magic isn't\". It doesn't \"just work,\" it doesn't respond to your thoughts, you can't throw fireballs or create a roast dinner from thin air or turn a bunch of muggers into frogs and snails./$", + }, + phials: { + "1": "I find it quite ... irritating, how Nature refuses to give me change for my work. If all I have on hand is $(l:items/amethyst)$(item)Charged Amethyst/$, even the tiniest $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$ will consume the entire crystal, wasting the remaining _media.$(br2)Fortunately, it seems I've found a way to somewhat allay this problem.", + "2": "I've found old scrolls describing a $(item)Glass Bottle/$ infused with _media. When casting _Hexes, my spells would then draw _media out of the phial. The liquid form of the _media would let me take exact change, so to speak; nothing would be wasted. It's quite like the internal battery of a $(l:items/hexcasting)$(item)Trinket/$, or similar; I can even $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ them in the same manner.", + "3": "Unfortunately, the art of actually $(italic)making/$ the things seems to have been lost to time. I've found a $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)hint at the pattern used to craft it/$, but the technique is irritatingly elusive, and I can't seem to do it successfully. I suspect I will figure it out with study and practice, though. For now, I will simply deal with the wasted _media...$(br2)But I won't settle for it forever.", + desc: "$(italic)Drink the milk./$", + }, + potions: { + "1": "Peering through a $(l:items/lens)$(item)Scrying Lens/$ allows me to fit more patterns onto my casting grid. But what if I want to improve my casting even further? Alchemy has an answer.$(br2)By adding a pinch of Amethyst Dust to an $(item)Awkward Potion/$, I can create a brew that increases the size of my grid in much the same way as the Lens. I can even use both at once for the ultimate grid!", + "2": "The Poción de claridad can be extended, strengthened, and modified like any other potion.$(br2)It can also be corrupted with a $(item)Fermented Spider Eye/$ to produce a variant with the opposite effect. This may be useful for dealing with enemy casters.", + "effects.header": "claridad and nublado", + }, + pigments: { + "1": "The old practitioners of my art sometimes identified themselves by a color, emblematic of them and their _Hexes. Although their names have faded, their colors remain. It seems a special kind of pigment, offered to Nature in the right way, would \"[...] paint one's thoughts in a manner pleasing to Nature, inducing a miraculous change in personal colour.\"", + "2": "I'm not certain on the specifics, but I believe I have isolated the formulae for many different colors and blends of pigments. To apply a pigment, I hold it in one hand and cast $(l:patterns/spells/colorize)$(action)Internalize Pigment/$ with the other; this consumes the pigment.$(br2)The pigments seem to affect the color of the sparks of _media emitted when I cast a _Hex and my $(l:patterns/spells/sentinels)$(thing)sentinel/$, but I don't doubt that the color will show up elsewhere.", + "colored.crafting.header": "Chromatic Pigments", + "colored.crafting.desc": "Pigments in all the colors of the rainbow.", + special: "And finally, a pair of special pigments. $(item)Soulglimmer Pigment/$ shines with colors wholly unique to me, and $(item)Vacant Pigment/$ restores my original purplish-orange spread.$(br2)$(italic)And all the colors I am inside have not been invented yet./$", + }, + edified: { + "1": "By infusing _media into a sapling via the use of $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Edify Sapling/$, I can create what is called an $(l:items/edified)$(thing)Edified Tree/$. They tend to be tall and pointy, with ridged bark and wood that grows in a strange spiral pattern. Their leaves come in three pretty colors.", + "2": "I would assume the wood would have some properties relevant to _Hexcasting. But, if it does, I cannot seem to find them. For all intents and purposes it appears to be just wood, albeit of a very strange color.$(br2)I suppose for now I will use it for decoration; the full suite of standard wood blocks can be crafted from them.$(br2)Of course, I can strip them with an axe as well.", + "crafting.desc": "$(italic)Their smooth trunks, with white bark, gave the effect of enormous columns sustaining the weight of an immense foliage, full of shade and silence./$", + }, + jeweler_hammer: { + "1": "After being careless with the sources of my _media one too many times, I have devised a tool to work around my clumsiness.$(br2)Using the delicate nature of crystallized _media as a fixture for a pickaxe, I can create the $(l:items/jeweler_hammer)$(item)Jeweler's Hammer/$. It acts like an $(item)Iron Pickaxe/$, for the most part, but can't break anything that takes up an entire block's space.", + "crafting.desc": "$(italic)Carefully, she cracked the half ruby, letting the spren escape./$", + }, + decoration: { + "1": "In the course of my studies I have discovered some building blocks and trifles that I may find aesthetically pleasing. I've compiled the methods of making them here.", + "ancient_scroll.crafting.desc": "Brown dye works well enough to simulate the look of an $(l:items/scroll)$(item)ancient scroll/$.", + "tiles.crafting.desc": "$(l:items/decoration)$(item)Amethyst Tiles/$ can also be made in a Stonecutter.$(br2)$(l:items/decoration)$(item)Blocks of Amethyst Dust/$ (next page) will fall like sand.", + "sconce.crafting.desc": "$(l:items/decoration)$(item)Amethyst Sconces/$ emit light and particles, as well as a pleasing chiming sound.", + }, + the_work: { + "1": "I have seen so many things. Unspeakable things. Innumerable things. I could write three words and turn my mind inside-out and smear my brains across the shadowed walls of my skull to decay into fluff and nothing.", + "2": "I have seen staccato-needle patterns and acid-etched schematics written on the inside of my eyelids. They smolder there-- they dance, they taunt, they $(italic)ache/$. I'm possessed by an intense $(italic)need/$ to draw them, create them. Form them. Liberate them from the gluey shackles of my mortal mind-- present them in their Glory to the world for all to see.$(p)All shall see.$(p)All will see.", + }, + brainsweeping: { + "1": "A secret was revealed to me. I saw it. I cannot forget its horror. The idea skitters across my brain.$(br2)I believed-- oh, foolishly, I $(italic)believed/$ --that _Media is the spare energy left over by thought. But now I $(italic)know/$ what it is: the energy $(italic)of/$ thought.", + "2": "It is produced by thinking sentience and allows sentience to think. It is a knot tying that braids into its own string. The Entity I naively anthromorphized as Nature is simply a grand such tangle, or perhaps the set of all tangles, or ... if I think it hurts I have so many synapses and all of them can think pain at once ALL OF THEM CAN SEE$(br2)I am not holding on. My notes. Quickly.", + "3": "The villagers of this world have enough consciousness left to be extracted. Place it into a block, warp it, change it. Intricate patterns caused by different patterns of thought, the abstract neural pathways of their jobs and lives mapped into the cold physic of solid atoms.$(br2)This is what $(l:patterns/great_spells/brainsweep)$(action)Desollar mente/$ does, the extraction. Target the villager entity and the destination block. Ten $(l:items/amethyst)$(item)Charged Amethyst/$ for this perversion of will.", + budding_amethyst: "And an application. For this flaying, any sort of villager will do, if it has developed enough. Other recipes require more specific types. NO MORE must I descend into the hellish earth for my _media.", + }, + spellcircles: { + "1": "I KNOW what the $(l:items/slate)$(item)slates/$ are for. The grand assemblies lost to time. The patterns scribed on them can be actuated in sequence, automatically. Thought and power ricocheting through, one by one by one by one by one by through and through and THROUGH AND -- I must not I must not I should know better than to think that way.", + "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other blocks suitable for the energies, one by one, collecting any patterns it finds. Once the wave circles back around to the $(l:greatwork/impetus)$(item)Impetus/$, all the patterns encountered are cast in order.$(br2)The direction the _media exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", + "3": "As a result, the outline of the spell \"circle\" may be any closed shape, concave or convex, and it may face any direction. In fact, with the application of certain other blocks it is possible to make a spell circle that spans all three dimensions. I doubt such an oddity has very much use, but I must allocate myself a bit of vapid levity to encourage my crude mind to continue my work.", + "4": "Miracle of miracles, the circle will withdraw _media neither from my inventory nor my mind. Instead, crystallized shards of _media must be provided to the $(l:greatwork/impetus)$(item)Impetus/$ via hopper, or other such artifice.$(br2)The application of a $(l:items/lens)$(item)Scrying Lens/$ will show how much _media is inside an $(l:greatwork/impetus)$(item)Impetus/$, in units of dust.", + "5": "However, a spell cast from a circle does have one major limitation: it is unable to affect anything outside of the circle's bounds. That is, it cannot interact with anything outside of the cuboid of minimum size which encloses every block composing it (so a concave spell circle can still affect things in the concavity).", + "6": "There is also a limit on the number of blocks the wave can travel through before it disintegrates, but it is large enough I doubt I will have any trouble.$(br2)Conversely, there are some actions that can only be cast from a circle. Fortunately, none of them are spells; they all seem to deal with components of the circle itself. My notes on the subject are $(l:patterns/circle)here/$.", + "7": "I also found a sketch of a spell circle used by the ancients buried in my notes. Facing this page is my (admittedly poor) copy of it.$(br2)The patterns there would have been executed counter-clockwise, starting with $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ and ending with $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Greater Teleport/$.", + "teleport_circle.title": "Teleportation Circle", + }, + impetus: { + "1": "The fluctuation of _media required to actuate a spell circle is complex. Even the mortal with sharpest eyes and steadiest hands could not serve as an $(l:greatwork/impetus)$(item)Impetus/$ and weave _media into the self-sustaining oroboros required.$(br2)The problem is that the mind is too full of other useless $(italics)garbage/$.", + "2": "At a ... metaphysical level-- I must be careful with these thoughts, I cannot lose myself, I have become too valuable --moving _media moves the mind, and the mind must be moved for the process to work. But, the mind is simply too $(italic)heavy/$ with other thoughts to move nimbly enough.$(br2)It is like an artisan trying to repair a watch while wearing mittens.", + "3": "There are several solutions to this conundrum: through meditative techniques one can learn to blank the mind, although I am not certain a mind free enough to actuate a circle can concentrate hard enough to do the motions.$(br2)Certain unsavory compounds can create a similar effect, but I know nothing of them and do not plan to learn. I must not rely on the chemicals of my brain.", + "4": "The solution I aim for, then, is to specialize a mind. Remove it from the tyranny of nerves, clip all outputs but delicate splays of _media-manipulating apparati, cauterize all inputs but the signal to start its work.$(br2)The process of $(l:greatwork/brainsweeping)$(action)mindflaying/$ I am now familiar with will do excellently; the mind of a villager is complex enough to do the work, but not so complex as to resist its reformation.", + empty_impetus: "First, the cradle. Although it does not work as an $(l:greatwork/impetus)$(item)Impetus/$, the flow of _media in a circle will only exit out the side pointed to by the arrows. This allows me to change the plane in which the wave flows, for example.", + impetus_rightclick: "Then, to transpose the mind. Villagers of different professions will lend different actuation conditions to the resulting $(l:greatwork/impetus)$(item)Impetus/$. A $(l:greatwork/impetus)$(item)Toolsmith Impetus/$ activates on a simple $(k:use).", + impetus_storedplayer: { + "1": "A $(l:greatwork/impetus)$(item)Cleric Impetus/$ activates when receiving a redstone signal. It may be bound to a player by using an item with a reference to that player, like a $(l:items/focus)$(item)Focus/$, on the block.", + "2": "Peculiarly to this $(l:greatwork/impetus)$(item)Impetus/$, the bound player, as well as a small region around them, are always accessible to the spell circle. It's as if they were standing within the bounds of the circle, no matter how far away they might stand.$(br2)The bound player is shown when looking at a $(l:greatwork/impetus)$(item)Cleric Impetus/$ through a $(l:items/lens)$(item)Scrying Lens/$.", + }, + impetus_look: "A $(l:greatwork/impetus)$(item)Fletcher Impetus/$ activates when looked at for a short time.", + }, + directrix: { + "1": "Simpler than the task of creating a self-sustaining wave of _media is the task of directing it. Ordinarily the wave disintegrates when coming upon a crossroads, but with a mind to guide it, an exit direction can be controlled.$(br2)This manipulation is not nearly so fine as the delicacy of actuating a spell circle. In fact, it might be possible to do it by hand... but the packaged minds I have access to now would be so very convenient.", + "2": "A $(l:greatwork/directrix)$(item)Directrix/$ accepts a wave of _media and determines to which of the arrows it will exit from, depending on the villager mind inside.$(br2)I am not certain if this idea was bestowed upon me, or if my mind is bent around the barrier enough to splint off its own ideas now... but if the idea came from my own mind, if I thought it, can it be said it was bestowed? The brain is a vessel for the mind and the mind is a vessel for ideas and the ideas vessel thought and thought sees all and knows all-- I MUST N O T", + empty_directrix: "Firstly, a design for the cradle ... although, perhaps \"substrate\" would be more accurate a word. Without a mind guiding it, the output direction is determined by microscopic fluctuations in the _media wave and surroundings, making it effectively random.", + directrix_redstone: "A $(l:greatwork/directrix)$(item)Mason Directrix/$ switches output side based on a redstone signal. Without a signal, the exit is the _media-color side; with a signal, the exit is the redstone-color side.", + directrix_boolean: "A $(l:greatwork/directrix)$(item)Shepherd Directrix/$ switches output side based on a boolean on the stack. A $(thing)True/$ makes the wave exit from the back, a $(thing)False/$ from the front.", + }, + akashiclib: { + "1": "I KNOW SO MUCH it is ONLY RIGHT to have a place to store it all. Information can be stored in books but it is oh so so so so $(italic)slow/$ to write by hand and read by eye. I demand BETTER. And so I shall MAKE better.$(br2)... I am getting worse ... do not know if I have time to write everything bursting through my head before expiring.", + "2": "The library. Here. My plans.$(br2)Like how patterns are associated with actions, I can associate my own patterns with iotas in any way I choose. An $(l:greatwork/akashiclib)$(item)Akashic Record/$ controls the library, and each $(l:greatwork/akashiclib)$(item)Akashic Bookshelf/$ stores one pattern mapped to one iota. These must all be directly connected together, touching, within 32 blocks. An $(l:greatwork/akashiclib)$(item)Akashic Ligature/$ doesn't do anything but count as a connecting block, to extend the size of my library.", + akashic_record: "Allocating and assigning patterns is simple but oh so boring. I have better things to do. I will need a mind well-used to its work for the extraction to stay sound.", + "3": "Then to operate the library is simple, the patterns are routed through the librarian and it looks them up and returns the iota to you. Two actions do the work. $(l:patterns/akashic_patterns)Notes here/$.$(br2)Using an empty $(l:items/scroll)$(item)scroll/$ on a bookshelf copies the pattern there onto the $(l:items/scroll)$(item)scroll/$. Sneaking and using an empty hand clears the datum in the shelf.", + }, + quenching_allays: { + "1": "THEY ARE BITS OF MEDIA. How did I not see it sooner? They are -- as I am a heap of flesh with a scrap, blessed with a scrap of thought, an Allay is a self-sustaining quarrel of media pinned to a scrap of flesh. It explains everything -- their propensity for media, their response to music, I SEE NOW, HOW did the ones before NOT?", + "2": "And given this it is only RIGHT I conquer their peculiar minds -- their peculiar selves -- that is all they are, a mind, a self, a coda. Something about their phase speaks to me. I can... I can compress _media with them, overlay two wends of thought in one space, physical and cognitive, all and once.$(br2)Somehow, the process produces _media of its own. How? Perhaps -- perhaps MY work, the process of doing it --", + "3": "It matters not. I matter not. They matter not, all that matters is what it does. And this is it.$(br2)It must hurt so very much.$(br2)Ten $(l:items/amethyst)$(item)Amethyst Dust/$ is the price to enact such a perverse ritual.", + "4": "The product is fragile. Breaking it shatters it into pieces, with $(thing)Fortune/$ increasing the yield... if I wish the block itself I need a silken touch.$(br2)The produced shards are worth thrice an $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ apiece. The block itself is worth four of the shards.", + "5": "They are mercurial, they seem to twist and wink under my fingers, and by giving them a mentor in another form of _media they may be coerced into its shape, in an equivalent exchange of _media.", + }, + "fanciful_staves.1": "It is only right as I shed the husk of ignorance I replace my tools, my palm-polished staves. These new constructions of mine have no additional properties -- but they are so glorious, oh so Glorious... They match the radiance winking at the corners of my sight.", + readers_guide: { + "1": "I've divided all the valid patterns I've found into sections based on what they do, more or less. I've written down the stroke order of the patterns as well, if I managed to find it in my studies, with the start of the pattern marked with a red dot.$(br2)If an action is cast by multiple patterns, as is the case with some, I'll write them all side-by-side.", + "2": "For a few patterns, however, I was $(italic)not/$ able to find the stroke order, just the shape. I suspect the order to draw them in are out there, locked away in the ancient libraries and dungeons of the world.$(br2)In such cases I just draw the pattern without any information on the order to draw it in.", + "3": "I also write the types of iota that the action will consume or modify, a \"→\", and the types of iota the action will create.$(p)For example, \"$(n)vector, number/$ → $(n)vector/$\" means the action will remove a vector and a number from the top of the stack, and then add a vector; or, put another way, will remove a number from the stack, and then modify the vector at the top of the stack. (The number needs to be on the top of the stack, with the vector right below it.)", + "4": "\"→ $(n)entity/$\" means it'll just push an entity. \"$(n)entity, vector/$ →\" means it removes an entity and a vector, and doesn't push anything.$(br2)Finally, if I find the little dot marking the stroke order too slow or confusing, I can press $(thing)Control/Command/$ to display a gradient, where the start of the pattern is darkest and the end is lightest. This works on scrolls and when casting, too!", + }, + basics_pattern: { + get_caster: "Adds me, the caster, to the stack.", + "entity_pos/eye": "Transforms an entity on the stack into the position of its eyes. I should probably use this on myself.", + "entity_pos/foot": "Transforms an entity on the stack into the position it is standing. I should probably use this on other entities.", + get_entity_look: "Transforms an entity on the stack into the direction it's looking in, as a unit vector.", + print: "Displays the top iota of the stack to me.", + raycast: { + "1": "Combines two vectors (a position and a direction) into the answer to the question: If I stood at the position and looked in the direction, what block would I be looking at? Costs a negligible amount of _media.", + "2": "If it doesn't hit anything, the vectors will combine into $(l:casting/influences)$(thing)Null/$.$(br2)A common sequence of patterns, the so-called \"raycast mantra,\" is $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade Purification/$, $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$. Together, they return the vector position of the block I am looking at.", + }, + "raycast/axis": { + "1": "Like $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$, but instead returns a vector representing the answer to the question: Which $(italic)side/$ of the block am I looking at? Costs a negligible amount of _media.", + "2": "More specifically, it returns the $(italic)normal vector/$ of the face hit, or a unit vector pointing perpendicular to the face.$(li)If I am looking at a floor, it will return (0, 1, 0).$(li)If I am looking at the south face of a block, it will return (0, 0, 1).", + }, + "raycast/entity": "Like $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$, but instead returns the $(italic)entity/$ I am looking at. Costs a negligible amount of _media.", + get_entity_height: "Transforms an entity on the stack into its height.", + get_entity_velocity: "Transforms an entity on the stack into the direction in which it's moving, with the speed of that movement as that direction's magnitude.", + }, + numbers: { + "1": "Irritatingly, there is no easy way to draw numbers. Here is the method Nature deigned to give us.", + "2": "First, I draw one of the two shapes shown on the other page. Next, the $(italic)angles/$ following will modify a running count starting at 0.$(li)Forward: Add 1$(li)Left: Add 5$(li)Right: Add 10$(li)Sharp Left: Multiply by 2$(li)Sharp Right: Divide by 2.$(br)The clockwise version of the pattern, on the right of the other page, will negate the value at the very end. (The left-hand counter-clockwise version keeps the number positive).$(p)Once I finish drawing, the number's pushed to the top of the stack.", + example: { + "10.header": "Example 1", + "10": "This pattern pushes 10.", + "7.header": "Example 2", + "7": "This pattern pushes 7: 5 + 1 + 1.", + "-32.header": "Example 3", + "-32": "This pattern pushes -32: negate 1 + 5 + 10 * 2.", + "4.5.header": "Example 4", + "4.5": "This pattern pushes 4.5: 5 / 2 + 1 + 1.", + }, + "3": "In certain cases it might be easier to just use an $(l:items/abacus)$(item)Abacus/$. But, it's worth knowing the \"proper\" way to do things.", + }, + math: { + numvec: "Many mathematical operations function on both numbers and vectors. Such arguments are written as \"num|vec\".", + "add.1": "Perform addition.", + "add.2": "As such:$(li)With two numbers at the top of the stack, combines them into their sum.$(li)With a number and a vector, removes the number from the stack and adds it to each element of the vector.$(li)With two vectors, combines them by summing corresponding components into a new vector (i.e. [1, 2, 3] + [0, 4, -1] = [1, 6, 2]).", + "sub.1": "Perform subtraction.", + "sub.2": "As such:$(li)With two numbers at the top of the stack, combines them into their difference.$(li)With a number and a vector, removes the number from the stack and subtracts it from each element of the vector.$(li)With two vectors, combines them by subtracting each component.$(br2)In all cases, the top of the stack or its components are subtracted $(italic)from/$ the second-from-the-top.", + "mul.1": "Perform multiplication or the dot product.", + "mul.2": "As such:$(li)With two numbers, combines them into their product.$(li)With a number and a vector, removes the number from the stack and multiplies each component of the vector by that number.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)dot product/$.", + "div.1": "Perform division or the cross product.", + "div.2": "As such:$(li)With two numbers, combines them into their quotient.$(li)With a number and a vector, removes the number and divides it by each element of the vector.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)cross product/$.$(br2)In the first and second cases, the top of the stack or its components comprise the dividend, and the second-from-the-top or its components are the divisor.$(p)WARNING: Never divide by zero!", + "abs.1": "Compute the absolute value or length.", + "abs.2": "Replaces a number with its absolute value, or a vector with its length.", + "pow.1": "Perform exponentiation or vector projection.", + "pow.2": "With two numbers, combines them by raising the first to the power of the second.$(li)With a number and a vector, removes the number and raises each component of the vector to the number's power.$(li)With two vectors, combines them into the $(l:https://en.wikipedia.org/wiki/Vector_projection)vector projection/$ of the top of the stack onto the second-from-the-top.$(br2)In the first and second cases, the first argument or its components are the base, and the second argument or its components are the exponent.", + floor: "\"Floors\" a number, cutting off the fractional component and leaving an integer value. If passed a vector, instead floors each of its components.", + ceil: "\"Ceilings\" a number, raising it to the next integer value if it has a fractional component. If passed a vector, instead ceils each of its components.", + construct_vec: "Combine three numbers at the top of the stack into a vector's X, Y, and Z components (bottom to top).", + deconstruct_vec: "Split a vector into its X, Y, and Z components (bottom to top).", + modulo: "Takes the modulus of two numbers. This is the amount $(italics)remaining/$ after division - for example, 5 %% 2 is 1, and 5 %% 3 is 2. When applied on vectors, performs the above operation elementwise.", + coerce_axial: "For a vector, coerce it to its nearest axial direction, a unit vector. For a number, return the sign of the number; 1 if positive, -1 if negative. In both cases, zero is unaffected.", + random: "Creates a random number between 0 and 1.", + }, + advanced_math: { + sin: "Takes the sine of an angle in radians, yielding the vertical component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + cos: "Takes the cosine of an angle in radians, yielding the horizontal component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + tan: "Takes the tangent of an angle in radians, yielding the slope of that angle drawn on a circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arcsin: "Takes the inverse sine of a value with absolute value 1 or less, yielding the angle whose sine is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arccos: "Takes the inverse cosine of a value with absolute value 1 or less, yielding the angle whose cosine is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan: "Takes the inverse tangent of a value, yielding the angle whose tangent is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan2: "Takes the inverse tangent of a Y and X value, yielding the angle between the X-axis and a line from the origin to that point.", + logarithm: "Removes the number at the top of the stack, then takes the logarithm of the number at the top using the other number as its base. Related to the value of $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$.", + }, + sets: { + numlist: "Set operations are odd, in that some of them can accept two numbers or two lists, but not a combination thereof. Such arguments will be written as \"(num, num)|(list, list)\".$(br2)When numbers are used in those operations, they are being used as so-called binary \"bitsets\", lists of 1 and 0, true and false, \"on\" and \"off\".", + "or.1": "Unifies two sets.", + "or.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit in either bitset.$(li)With two lists, this creates a list of every element from the first list, plus every element from the second list that is not in the first list. This is somewhat similar to $(l:patterns/lists#hexcasting:add)$(action)Additive Distillation/$.", + "and.1": "Takes the intersection of two sets.", + "and.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)both/$ bitsets.$(li)With two lists, this creates a list of every element from the first list that is also in the second list.", + "xor.1": "Takes the exclusive disjunction of two sets.", + "xor.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)exactly one/$ of the bitsets.$(li)With two lists, this creates a list of every element in both lists that is $(italics)not/$ in the other list.", + not: "Takes the inversion of a bitset, changing all \"on\" bits to \"off\" and vice versa. In my experience, this will take the form of that number negated and decreased by one. For example, 0 will become -1, and -100 will become 99.", + to_set: "Removes duplicate entries from a list.", + }, + "consts.const/": { + "null": "Adds the $(l:casting/influences)$(thing)Null/$ influence to the top of the stack.", + "true": "Adds $(thing)True/$ to the top of the stack.", + "false": "Adds $(thing)False/$ to the top of the stack.", + "vec/": { + x: "The left-hand counter-clockwise pattern adds [1, 0, 0] to the stack; the right-hand clockwise pattern adds [-1, 0, 0].", + y: "The left-hand counter-clockwise pattern adds [0, 1, 0] to the stack; the right-hand clockwise pattern adds [0, -1, 0].", + z: "The left-hand counter-clockwise pattern adds [0, 0, 1]; the right-hand clockwise pattern adds [0, 0, -1].", + "0": "Adds [0, 0, 0] to the stack.", + }, + "double/": { + tau: "Adds τ, the radial representation of a complete circle, to the stack.", + pi: "Adds π, the radial representation of half a circle, to the stack.", + e: "Adds $(italic)e/$, the base of natural logarithms, to the stack.", + }, + }, + stackmanip: { + "pseudo-novice.title": "Novice's Gambit", + "pseudo-novice": "Removes the first iota from the stack.$(br2)This seems to be a special case of $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit/$.", + swap: "Swaps the top two iotas of the stack.", + rotate: "Yanks the iota third from the top of the stack to the top. [0, 1, 2] becomes [1, 2, 0].", + rotate_reverse: "Yanks the top iota to the third position. [0, 1, 2] becomes [2, 0, 1].", + duplicate: "Duplicates the top iota of the stack.", + over: "Copy the second-to-last iota of the stack to the top. [0, 1] becomes [0, 1, 0].", + tuck: "Copy the top iota of the stack, then put it under the second iota. [0, 1] becomes [1, 0, 1].", + "2dup": "Copy the top two iotas of the stack. [0, 1] becomes [0, 1, 0, 1].", + stack_len: "Pushes the size of the stack as a number to the top of the stack. (For example, a stack of [0, 1] will become [0, 1, 2].)", + duplicate_n: "Removes the number at the top of the stack, then copies the top iota of the stack that number of times. (A count of 2 results in two of the iota on the stack, not three.)", + fisherman: "Grabs the element in the stack indexed by the number and brings it to the top. If the number is negative, instead moves the top element of the stack down that many elements.", + "fisherman/copy": "Like $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Fisherman's Gambit/$, but instead of moving the iota, copies it.", + mask: { + "1": "An infinite family of actions that keep or remove elements at the top of the stack based on the sequence of dips and lines.", + "2": "Assuming that I draw a Bookkeeper's Gambit pattern left-to-right, the number of iotas the action will require is determined by the horizontal distance covered by the pattern. From deepest in the stack to shallowest, a flat line will keep the iota, whereas a triangle dipping down will remove it.$(br2)If my stack contains $(italic)0, 1, 2/$ from deepest to shallowest, drawing the first pattern opposite will give me $(italic)1/$, the second will give me $(italic)0/$, and the third will give me $(italic)0, 2/$ (the 0 at the bottom is left untouched).", + }, + swizzle: { + "1": "Rearranges the top elements of the stack based on the given numerical code, which is the index of the permutation wanted.", + "2": "Although I can't pretend to know the mathematics behind calculating this permutation code, I have managed to dig up an extensive chart of them, enumerating all permutations of up to six elements.$(br2)If I wish to do further study, the key word is \"Lehmer Code.\"", + link: "Table of Codes", + }, + }, + logic: { + bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(l:casting/influences)$(thing)Null/$, False, and the empty list become False; everything else becomes True.", + bool_to_number: "Convert a boolean to a number; True becomes $(thing)1/$, and False becomes $(thing)0/$.", + not: "If the argument is True, return False; if it is False, return True.", + or: "Returns True if at least one of the arguments are True; otherwise returns False.", + and: "Returns True if both arguments are true; otherwise returns False.", + xor: "Returns True if exactly one of the arguments is true; otherwise returns False.", + "if": "If the first argument is True, keeps the second and discards the third; otherwise discards the second and keeps the third.", + equals: "If the first argument equals the second (within a small tolerance), return True. Otherwise, return False.", + not_equals: "If the first argument does not equal the second (outside a small tolerance), return True. Otherwise, return False.", + greater: "If the first argument is greater than the second, return True. Otherwise, return False.", + less: "If the first argument is less than the second, return True. Otherwise, return False.", + greater_eq: "If the first argument is greater than or equal to the second, return True. Otherwise, return False.", + less_eq: "If the first argument is less than or equal to the second, return True. Otherwise, return False.", + }, + entities: { + get_entity: "Transform the position on the stack into the entity at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + "get_entity/": { + animal: "Transform the position on the stack into the animal at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + monster: "Transform the position on the stack into the monster at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + item: "Transform the position on the stack into the dropped item at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + player: "Transform the position on the stack into the player at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + living: "Transform the position on the stack into the living creature at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + }, + zone_entity: "Take a position and maximum distance on the stack, and combine them into a list of all entities near the position.", + "zone_entity/": { + animal: "Take a position and maximum distance on the stack, and combine them into a list of animals near the position.", + not_animal: "Take a position and maximum distance on the stack, and combine them into a list of non-animal entities near the position.", + monster: "Take a position and maximum distance on the stack, and combine them into a list of monsters near the position.", + not_monster: "Take a position and maximum distance on the stack, and combine them into a list of non-monster entities near the position.", + item: "Take a position and maximum distance on the stack, and combine them into a list of dropped items near the position.", + not_item: "Take a position and maximum distance on the stack, and combine them into a list of non-dropped-item entities near the position.", + player: "Take a position and maximum distance on the stack, and combine them into a list of players near the position.", + not_player: "Take a position and maximum distance on the stack, and combine them into a list of non-player characters near the position.", + living: "Take a position and maximum distance on the stack, and combine them into a list of living creatures near the position.", + not_living: "Take a position and maximum distance on the stack, and combine them into a list of non-living entities near the position.", + }, + }, + lists: { + index: "Remove the number at the top of the stack, then replace the list at the top with the nth element of that list (where n is the number you removed). Replaces the list with $(l:casting/influences)$(thing)Null/$ if the number is out of bounds.", + slice: "Remove the two numbers at the top of the stack, then take a sublist of the list at the top of the stack between those indices, lower bound inclusive, upper bound exclusive. For example, the 0, 2 sublist of [0, 1, 2, 3, 4] would be [0, 1].", + append: "Remove the top of the stack, then add it to the end of the list at the top of the stack.", + unappend: "Remove the iota on the end of the list at the top of the stack, and add it to the top of the stack.", + add: "Remove the list at the top of the stack, then add all its elements to the end of the list at the top of the stack.", + empty_list: "Push an empty list to the top of the stack.", + singleton: "Remove the top of the stack, then push a list containing only that element.", + abs: "Remove the list at the top of the stack, then push the number of elements in the list to the stack.", + reverse: "Reverse the list at the top of the stack.", + index_of: "Remove the iota at the top of the stack, then replace the list at the top with the first index of that iota within the list (starting from 0). Replaces the list with -1 if the iota doesn't exist in the list.", + remove_from: "Remove the number at the top of the stack, then remove the nth element of the list at the top of the stack (where n is the number you removed).", + replace: "Remove the top iota of the stack and the number at the top, then set the nth element of the list at the top of the stack to that iota (where n is the number you removed). Does nothing if the number is out of bounds.", + last_n_list: "Remove $(italic)num/$ elements from the stack, then add them to a list at the top of the stack.", + splat: "Remove the list at the top of the stack, then push its contents to the stack.", + construct: "Remove the top iota, then add it as the first element to the list at the top of the stack.", + deconstruct: "Remove the first iota from the list at the top of the stack, then push that iota to the stack.", + }, + patterns_as_iotas: { + "1": "One of the many peculiarities of this art is that $(italic)patterns themselves/$ can act as iotas-- I can even put them onto my stack when casting.$(br2)This raises a fairly obvious question: how do I express them? If I simply drew a pattern, it would hardly tell Nature to add it to my stack-- rather, it would simply be matched to an action.", + "2": "Fortunately, Nature has provided me with a set of $(l:casting/influences)influences/$ that I can use to work with patterns directly.$(br2)In short, $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ lets me add one pattern to the stack, and $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ let me add a whole list.", + parens: { + "1": "Drawing $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ makes my drawing of patterns act differently, for a time. Until I draw $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Retrospection/$, the patterns I draw are saved. Then, when I draw $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$, they are added to the stack as a list iota.", + "2": "If I draw another $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Introspection/$, it'll still be saved to the list, but I'll then have to draw $(italic)two/$ $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospections/$ to get back to normal casting.", + }, + undo: "Finally, if I make a mistake while drawing patterns inside $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Intro-/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ I can draw $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Evanition/$ to remove the last pattern that I drew from the pattern list that is being constructed.", + }, + readwrite: { + "1": "This section deals with the storage of $(thing)Iotas/$ in a more permanent medium. Nearly any iota can be stored to a suitable item, such as a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$, and read back later. Certain items, such as an $(l:items/abacus)$(item)Abacus/$, can only be read from.$(br2)Iotas are usually read and written from the other hand, but it is also possible to read and write with an item when it is sitting on the ground as an item entity, or when in an item frame.", + "2": "There may be other entities I can interact with in this way. For example, a $(l:items/scroll)$(item)Scroll/$ hung on the wall can have its pattern read off of it.$(br2)However, it seems I am unable to save a reference to another player, only me. I suppose an entity reference is similar to the idea of a True Name; perhaps Nature is helping to keep our Names out of the hands of enemies. If I want a friend to have my Name I can make a $(l:items/focus)$(item)Focus/$ for them.", + read: "Copy the iota stored in the item in my other hand and add it to the stack.", + write: "Remove the top iota from the stack, and save it into the item in my other hand.", + "read/entity": "Like $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$, but the iota is read out of an entity instead of my other hand.", + "write/entity": "Like $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Gambit/$, but the iota is written to an entity instead of my other hand.$(br2)Interestingly enough, it looks like I cannot write my own Name using this spell. I get a sense that I might be endangered if I could.", + readable: "If the item in my other hand holds an iota I can read, returns True. Otherwise, returns False.", + "readable/entity": "Like $(l:patterns/readwrite#hexcasting:readable)$(action)Auditor's Reflection/$, but the readability of an entity is checked instead of my other hand.", + writable: "If I could save an iota into the item in my other hand, returns True. Otherwise, returns False.", + "writable/entity": "Like $(l:patterns/readwrite#hexcasting:writable)$(action)Assessor's Reflection/$, but the writability of an entity is checked instead of my other hand.", + "local.title": "The Ravenmind", + local: "Items are not the only places I can store information, however. I am also able to store that information in the _media of the _Hex itself, much like the stack, but separate. Texts refer to this as the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$. It holds a single iota, much like a $(l:items/focus)$(item)Focus/$, and begins with $(l:casting/influences)$(thing)Null/$ like the same. It is preserved between iterations of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$, but only lasts as long as the _Hex it's a part of. Once I stop casting, the value will be lost.", + "write/local": "Removes the top iota from the stack, and saves it to my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, storing it there until I stop casting the _Hex.", + "read/local": "Copy the iota out of my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, which I likely just wrote with $(l:patterns/readwrite#hexcasting:write/local)$(action)Huginn's Gambit/$.", + }, + meta: { + "eval.1": "Remove a pattern or list of patterns from the stack, then cast them as if I had drawn them myself with my $(l:items/staff)$(item)Staff/$ (until a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ is encountered). If an iota is escaped with $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ or $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)its ilk/$, it will be pushed to the stack. Otherwise, non-patterns will fail.", + "eval.2": "This can be $(italic)very/$ powerful in tandem with $(l:items/focus)$(item)Foci/$.$(br2)It also makes the bureaucracy of Nature a \"Turing-complete\" system, according to one esoteric scroll I found.$(br2)However, it seems there's a limit to how many times a _Hex can cast itself-- Nature doesn't look kindly on runaway spells!$(br2)In addition, with the energies of the patterns occurring without me to guide them, any percance will cause the remaining actions to become too unstable and immediately unravel.", + "for_each.1": "Remove a list of patterns and a list from the stack, then cast the given pattern over each element of the second list.", + "for_each.2": "More specifically, for each element in the second list, it will:$(li)Create a new stack, with everything on the current stack plus that element$(li)Draw all the patterns in the first list$(li)Save all the iotas remaining on the stack to a list$(br)Then, after all is said and done, pushes the list of saved iotas onto the main stack.$(br2)No wonder all the practitioners of this art go mad.", + "halt.1": "This pattern forcibly halts a _Hex. This is mostly useless on its own, as I could simply just stop writing patterns, or put down my staff.", + "halt.2": "But when combined with $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ or $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambits/$, it becomes $(italics)far/$ more interesting. Those patterns serve to 'contain' that halting, and rather than ending the entire _Hex, those gambits end instead. This can be used to cause $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$ not to operate on every iota it's given. An escape from the madness, as it were.", + "eval/cc.1": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that a unique \"Jump\" iota is pushed to the stack beforehand. ", + "eval/cc.2": "When the \"Jump\"-iota is executed, it'll skip the rest of the patterns and jump directly to the end of the pattern list.$(p)While this may seem redundant given $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ exists, this allows you to exit $(italic)nested/$ $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ invocations in a controlled way, where Charon only allows you to exit one.$(p)The \"Jump\" iota will apparently stay on the stack even after execution is finished... better not think about the implications of that.", + "thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex.", + }, + circle_patterns: { + disclaimer: "These patterns must be cast from a $(l:greatwork/spellcircles)$(item)Spell Circle/$; trying to cast them through a $(l:items/staff)$(item)Staff/$ will fail rather spectacularly.", + "circle/impetus_pos": "Returns the position of the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle.", + "circle/impetus_dir": "Returns the direction the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle is facing as a unit vector.", + "circle/bounds/min": "Returns the position of the lower-north-west corner of the bounds of this spell circle.", + "circle/bounds/max": "Returns the position of the upper-south-east corner of the bounds of this spell circle.", + }, + akashic_patterns: { + "akashic/read": "Read the iota associated with the given pattern out of the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This has no range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + "akashic/write": "Associate the iota with the given pattern in the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This $(italic)does/$ have a range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + }, + itempicking: { + "1": "Certain spells, such as $(l:patterns/spells/blockworks#hexcasting:place_block)$(action)Place Block/$, will consume additional items from my inventory. When this happens, the spell will first look for the item to use, and then draw from all such items in my inventory.$(br2)This process is called \"picking an item.\"", + "2": "More specifically:$(li)First, the spell will search for the first valid item in my hotbar to the $(italic)right of my $(l:items/staff)$(item)staff/$, wrapping around at the right-hand side, and starting at the first slot if my $(l:items/staff)$(item)staff/$ is in my off-hand.$(li)Second, the spell will draw that item from as $(italic)far back in my inventory/$ as possible, prioritizing the main inventory over the hotbar.", + "3": "This way, I can keep a \"chooser\" item on my hotbar to tell the spell what to use, and fill the rest of my inventory with that item to keep the spell well-stocked.", + }, + basic_spell: { + "explode.1": "Remove a number and vector from the stack, then create an explosion at the given location with the given power.", + "explode.2": "A power of 3 is about as much as a Creeper's blast; 4 is about as much as a TNT blast. Nature refuses to give me a blast of more than 10 power, though.$(br2)Strangely, this explosion doesn't seem to harm me. Perhaps it's because $(italic)I/$ am the one exploding?$(br2)Costs a negligible amount at power 0, plus 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$ per point of explosion power.", + "explode.fire.1": "Remove a number and vector from the stack, then create a fiery explosion at the given location with the given power.", + "explode.fire.2": "Costs one $(l:items/amethyst)$(item)Amethyst Dust/$, plus about 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$s per point of explosion power. Otherwise, the same as $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, except with fire.", + add_motion: "Remove an entity and direction from the stack, then give a shove to the given entity in the given direction. The strength of the impulse is determined by the length of the vector.$(br)Costs units of $(l:items/amethyst)$(item)Amethyst Dust/$ equal to the square of the length of the vector, plus one for every Impulse except the first targeting an entity.", + blink: "Remove an entity and length from the stack, then teleport the given entity along its look vector by the given length.$(br)Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$ per two blocks travelled.", + "beep.1": "Remove a vector and two numbers from the stack. Plays an $(thing)instrument/$ defined by the first number at the given location, with a $(thing)note/$ defined by the second number. Costs a negligible amount of _media.", + "beep.2": "There appear to be 16 different $(thing)instruments/$ and 25 different $(thing)notes/$. Both are indexed by zero.$(br2)These seem to be the same instruments I can produce with a $(item)Note Block/$, though the reason for each instrument's number being what it is eludes me.$(br2)Either way, I can find the numbers I need to use by inspecting a $(item)Note Block/$ through a $(l:items/lens)$(item)Scrying Lens/$.", + }, + blockworks: { + place_block: "Remove a location from the stack, then pick a block item and place it at the given location.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$.", + break_block: "Remove a location from the stack, then break the block at the given location. This spell can break nearly anything a Diamond Pickaxe can break.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust, or a negligible amount if breaking a $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjured Block/$ or $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Conjured Light/$.", + create_water: "Summon a block of water (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + destroy_water: "Drains either a liquid container at, or a body of liquid around, the given position. Costs about two $(l:items/amethyst)$(item)Charged Amethyst/$.", + conjure_block: "Conjure an ethereal, but solid, block that sparkles with my pigment at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + conjure_light: "Conjure a magical light that softly glows with my pigment at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + bonemeal: "Encourage a plant or sapling at the target position to grow, as if $(item)Bonemeal/$ was applied. Costs a bit more than one $(l:items/amethyst)$(item)Amethyst Dust/$.", + edify: "Forcibly infuse _media into the sapling at the target position, causing it to grow into an $(l:items/edified)$(thing)Edified Tree/$. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + ignite: "Start a fire on top of the given location, as if a $(item)Fire Charge/$ was applied, or sets fire to a creature. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + extinguish: "Extinguish blocks in a large area. Costs about six $(l:items/amethyst)$(item)Amethyst Dust/$.", + }, + nadirs: { + "1": "This family of spells all impart a negative potion effect upon an entity. They all take an entity, the recipient, and one or two numbers, the first being the duration and the second, if present, being the potency (starting at 1).$(br2)Each one has a \"base cost;\" the actual cost is equal to that base cost, multiplied by the potency squared.", + "2": "According to certain legends, these spells and their sisters, the $(l:patterns/great_spells/zeniths)$(action)Zeniths/$, were \"[...] inspired by a world near to this one, where powerful wizards would gather magic from the land and hold duels to the death. Unfortunately, much was lost in translation...\"$(br2)Perhaps that is the reason for their peculiar names.", + "potion/weakness": "Inflicts $(thing)weakness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 10 seconds.", + "potion/levitation": "Inflicts $(thing)levitation/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", + "potion/wither": "Inflicts $(thing)withering/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", + "potion/poison": "Inflicts $(thing)poison/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", + "potion/slowness": "Inflicts $(thing)slowness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", + }, + hexcasting_spell: { + basics: "These three spells each create an $(l:items/hexcasting)$(thing)item that casts a _Hex./$$(br)They all require me to hold the empty item in my off-hand, and require two things: the list of patterns to be cast, and an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ to form the item's battery.$(br2)See $(l:items/hexcasting)this entry/$ for more information.", + "craft/cypher": "Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + "craft/trinket": "Costs about five $(l:items/amethyst)$(item)Charged Amethysts/$.", + "craft/artifact": "Costs about ten $(l:items/amethyst)$(item)Charged Amethysts/$.", + "recharge.1": "Recharge a _media-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$.", + "recharge.2": "This spell is cast in a similar method to the crafting spells; an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ is provided, and recharges the _media battery of the item in my other hand.$(br2)This spell $(italic)cannot/$ recharge the item farther than its original battery size.", + "erase.1": "Clear a _Hex-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + "erase.2": "The spell will also void all the _media stored inside the item, releasing it back to Nature and returning the item to a perfectly clean slate. This way, I can re-use $(l:items/hexcasting)$(item)Trinkets/$ I have put an erroneous spell into, for example.$(br2)This also works to clear a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$ page, unsealing them in the process.", + }, + sentinels: { + "1": "$(italic)Hence, away! Now all is well,$(br)One aloof stand sentinel./$$(br2)A $(l:patterns/spells/sentinels)$(thing)Sentinel/$ is a mysterious force I can summon to assist in the casting of _Hexes, like a familiar or guardian spirit. It appears as a spinning geometric shape to my eyes, but is invisible to everyone else.", + "2": "It has several interesting properties:$(li)It does not appear to be tangible; no one can touch it.$(li)Only my _Hexes can interact with it.$(li)Once summoned, it stays in place until banished.$(li)I am always able to see it if I'm close enough, even through solid objects.", + "sentinel/create": "Summons my $(l:patterns/spells/sentinels)$(thing)sentinel/$ at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + "sentinel/destroy": "Banish my $(l:patterns/spells/sentinels)$(thing)sentinel/$, and remove it from the world. Costs a negligible amount of _media.", + "sentinel/get_pos": "Add the position of my $(l:patterns/spells/sentinels)$(thing)sentinel/$ to the stack, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", + "sentinel/wayfind": "Transform the position vector on the top of the stack into a unit vector pointing from that position to my $(l:patterns/spells/sentinels)$(thing)sentinel/$, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", + }, + colorize: "I must be holding a $(l:items/pigments)$(item)Pigment/$ in my other hand to cast this spell. When I do, it will consume the dye and permanently change my mind's coloration (at least, until I cast the spell again). Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + cycle_variant: "Certain items I create seem oddly receptive to the influence of _media. By holding a $(l:items/hexcasting)$(item)Cypher/$, $(l:items/hexcasting)$(item)Trinket/$, $(l:items/hexcasting)$(item)Artifact/$, $(l:items/focus)$(item)Focus/$, or $(l:items/spellbook)$(item)Spellbook/$ in my other hand, I can use this spell to change the appearance of the item. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + flights: { + "1": "Although it seems that true, limitless flight is out of my grasp, I have nonetheless found some methods of holding one in the sky, each with their respective drawbacks.$(br2)All forms produce a shimmer of excess _media; as the spell gets closer to ending, the sparks are shot through with more red and black.", + "2": "Other forms of flight do exist, of course. For example, a combination of $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ and $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)Blue Sun's Nadir/$ has been used since antiquity for a flight of sorts.$(br2)I've also heard tell of a thin membrane worn on the back that allows the ability to glide. From my research, I believe the Great spell $(l:patterns/great_spells/altiora)$(action)Altiora/$ may be used to mimic it.", + "range.1": "A flight limited in its range.", + "range.2": "The second argument is a horizontal radius, in meters, in which the spell is stable. Moving outside of that radius will end the spell, dropping me out of the sky. As long as I stay inside the safe zone, however, the spell lasts indefinitely. An additional shimmer of _media marks the origin point of the safe zone. $(br2)Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per meter of safety.", + "time.1": "A flight limited in its duration.", + "time.2": "The second argument is an amount of time in seconds for which the spell is stable. After that time, the spell ends and I am dropped from the sky. $(br2)It is relatively expensive at about 1 $(l:items/amethyst)$(item)Charged Crystal/$ per second of flight; I believe it is best suited for travel.", + "can_fly.1": "Returns whether the given player is under the effects of $(l:patterns/spells/flight#hexcasting:flight/range)Anchorite's/$ or $(l:patterns/spells/flight#hexcasting:flight/time)Wayfarer's Flight/$.", + "can_fly.2": "Does not detect whether the player can fly by other means.$(br2)It is unclear to me what use this has. But I suppose its utility is in the eye of the beholder.", + }, + create_lava: { + "1": "Summon a block of lava (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + "2": "It may be advisable to keep my knowledge of this spell secret. A certain faction of botanists get... touchy about it, or so I've heard.$(br2)Well, no one said tracing the deep secrets of the universe was going to be an easy time.", + }, + weather_manip: { + lightning: "I command the heavens! This spell will summon a bolt of lightning to strike the earth where I direct it. Costs about three $(l:items/amethyst)$(item)Amethyst Shards/$.", + summon_rain: "I control the clouds! This spell will summon rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$. Does nothing if it is already raining.", + dispel_rain: "A counterpart to summoning rain. This spell will dispel rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$. Does nothing if the skies are already clear.", + }, + altiora: { + "1": "Summon a sheaf of _media about me in the shape of wings, endowed with enough substance to allow gliding.", + "2": "Using them is identical to using $(item)Elytra/$; the target (which must be a player) is lofted into the air, after which pressing $(k:jump) will deploy the wings. The wings are fragile, and break upon touching any surface. Longer flights may benefit from $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ or (for the foolhardy) $(item)Fireworks/$.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Crystal/$.", + }, + "teleport/great": { + "1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport nearly anywhere in the entire world! There does seem to be a limit, but it is $(italic)much/$ greater than the normal radius of influence I am used to.", + "2": "The entity will be teleported by the given vector. Curiously, this vector seems to be an offset, not an absolute position in the world; for example, if I use $(l:patterns/consts#hexcasting:const/vec/x)$(action)Vector Reflection +X/$, the entity will end up precisely one block east of its original position. No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination. In addition, the target will be forcibly removed from anything inanimate they are riding or sitting on ... but I've read scraps that suggest animals can come along for the ride, so to speak.", + }, + zeniths: { + "1": "This family of spells all impart a positive potion effect upon an entity, similar to the $(l:patterns/spells/nadirs)$(action)Nadirs/$. However, these have their _media costs increase with the $(italic)cube/$ of the potency.", + "potion/regeneration": "Bestows $(thing)regeneration/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", + "potion/night_vision": "Bestows $(thing)night vision/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", + "potion/absorption": "Bestows $(thing)absorption/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", + "potion/haste": "Bestows $(thing)haste/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", + "potion/strength": "Bestows $(thing)strength/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", + }, + greater_sentinel: { + "1": "Summon a greater version of my $(l:patterns/spells/sentinels)$(thing)Sentinel/$. Costs about two $(l:items/amethyst)$(item)Amethyst Dust/$.", + "2": "The stronger $(l:patterns/spells/sentinels)$(thing)sentinel/$ acts like the normal one I can summon without the use of a Great Spell, if a little more visually interesting. However, the range in which my spells can work is extended to a small region around my greater $(l:patterns/spells/sentinels)$(thing)sentinel/$, about 16 blocks. In other words, no matter where in the world I am, I can interact with things around my $(l:patterns/spells/sentinels)$(thing)sentinel/$ (the mysterious forces of chunkloading notwithstanding).", + }, + make_battery: { + "1": "Infuse a bottle with _media to form a $(l:items/phials)$(item)Phial./$", + "2": "Similarly to the spells for $(l:patterns/spells/hexcasting)$(action)Crafting Casting Items/$, I must hold a $(item)Glass Bottle/$ in my other hand, and provide the spell with a dropped stack of $(l:items/amethyst)$(item)Amethyst/$. See $(l:items/phials)this page/$ for more information.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + }, + "brainsweep_spell.1": "I cannot make heads or tails of this spell... To be honest, I'm not sure I want to know what it does.", + lore: { + cardamom1: { + "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #1/$$(br2)Dear Papa,$(br)Every day it seems I have more reason to thank you for saving up to send me to the Grand Library. The amount I am learning is incredible! I feel I don't have the skill with words needed to express myself fully... it is wonderful to be here.", + "2": "I sit in the main dome as I write this. It's maintained by the Hexcasting Corps; they have some sort of peculiar mechanism at the top that captures the stray thought energy as it leaks out from the desks and desks of hard-working students, as I understand it. One of my friends in the dormitory, Amanita, is studying the subject, and oh how she loves to explain it to me at length, although I confess I do not understand it very well.", + "3": "The way I understand it, our processes of thought--the intangible mechanisms by which I move my pen and by which you read this letter--are not completely efficient. A small amount of that energy is released into the environment, like how a wagon's axle is hot to the touch after it has been turning for a while. This spare energy is called \"media.\" One person's spare media is trifiling, but the hundreds of thinking people in the main dome have a sort of multiplicative effect, and combined with some sort of ingenious mechanism, it can be solidified into a sort of purple crystal.", + "4": "But that's enough about her studies. I returned from my first expedition with the Geology Corps today! My apologies for not sending a letter before I left; the date crept up on me. We ventured into a crack in the earth to the east of the Grand and spent the night camping under the rock and soil. We kept to well-lit and well-traveled areas of the cave, of course, and in all honesty it was likely safer in there than the night surface, but oh how I was scared!", + "5": "Fortunately the night passed without percance, and we proceeded deeper into the cave for our examination of the local veins of ore. We were looking for trace veins of a purple crystal called \"amethyst,\" which supposedly occurs in small amounts deep in the rock. We did not find anything, sadly, and returned to the sunlit surface empty-handed.", + "6": "Come to think of it, the description of this \"amethyst\" I now realize closely matches those crystals of media Amanita speaks of. Imagine if these nuggets of thought occurred naturally under the ground! I can't imagine why that might happen, though... ", + "7": "As a student, I am entitled to send one letter by Akashic post every three months, free of charge. Unfortunately, you know how thin my moneybags are ... so I am afraid this offer is the only method I may communicate with you. I will of course appreciate immensely if you manage to scrounge together the money to send a letter back, but it seems our communications may be limited. I hate to be cut off from you so, but the skills I gain here will be more than repayment. Imagine, I will be the first member of our family to be anything other than a farmer!", + "8": "So, I suppose I will write again in three months' time.$(br2)Yours,$(br)-- Cardamom Steles", + }, + cardamom2: { + "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #2/$$(br2)Dear Papa,$(br)... Goodness, what an ordeal it is to try to summarize the last three months into a short letter. Such a cruel task set before me by this miracle I receive entirely for free! Woe is me.", + "2": "My studies with the Geology Corps have been progressing smoothly. We have gone on more expeditions, deeper into the earth, to where the smooth gray stone makes way to a hard, flaky slate. It creates such an awful, choking dust under your feet... it's incredible what hostility there is below all of our feet all the time, even disregarding the creatures of the dark. (I have had one or two encounters with them, but I know how you shudder to think of me having to fight for my life, so I will not write of them.)", + "3": "We did manage to find some of this amethyst, however. There was a small vein with a few trace crystals on one of our expeditions. We were under strict instructions to keep none of them and turn them in to our Corps prefect immediately. I find the whole affair rather ridiculous; they treat it like some matter of enormous importance and secrecy, and yet have a group of a dozen students, all barely six months at the Grand Library, trying to excavate barely ten drams of the stuff with twelve prospector's picks in a square foot...", + "4": "I cannot imagine for what purpose, either. A librarian pointed me to an encyclopedia of gems, and amethyst seems to have next to no purpose; it's used for certain specialty types of glass and lenses, of all things.$(br2)If I were to speculate, I would guess that these amethyst crystals and the media they so resemble are one and the same, as I wrote of last time.", + "5": "If this is true, the secrecy, not to mention the prefect's aversion to questioning, may be because this is an original piece of research the Grand Library is not eager to let into the hands of enemy factions.$(br2)However, this theory does not sit quite right with me. The amethyst I handled in the cave and the crystals of media Amanita has shown to me do seem quite similar, but not identical. I would like to see them side-by-side to be sure, but media has a peculiar buzzing or rumbling feel beneath the fingers that amethyst does not.", + "6": "It is quite possible I was unable to sense it on the amethyst in the cave due to the stress of being undergound-- my hands were shaking the one time I managed to touch some, and the feeling is very light --but it does not seem the same to me. The light reflects slightly differently.$(br2)I suppose if I ever manage to get my hands on a crystal of amethyst outside of a cave, I will ask Amanita to see if she can cast a spell with it. Every time we meet she seems to have some new fantastic trick.", + "7": "Just last week she suspended me in the air supported by nothing at all! It is an immensely strange feeling to have your body tingling and lighter than air with your clothing still the same weight... I am just glad she tugged me over my bed before the effect ran out.$(br2)Yours,$(br)-- Cardamom Steles", + }, + cardamom3: { + "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 1/2/$$(br2)Dear Papa,$(br)Two very peculiar things have happened since I last wrote.$(br2)Firstly, the professor in charge of the entry-level Hexcasting Corps students has disappeared. Nobody knows where he has gone. His office and living quarters were found locked, but still in their usual state of disarray.", + "2": "Even more peculiarly, any attempts by the students of the Grand to rouse the administrative portions of the gnarled bureaucracy have been very firmly rejected. Even other professors seem reluctant to talk about him.$(br2)As you might imagine, Amanita is sorely distressed. Whatever replacement professors the Grand managed to dredge up have none of the old professor's tact or skill with beginners.", + "3": "But amazingly, that is not the stranger of the two things I have to tell you. The most horrendous thing I hope to ever experience happened on another trip out with the Geology Corps. This time, we were due for an expedition near a village.", + "4": "Usually when we do such a thing, there is a long process of communication with the mayor or elder of the village to ensure we have permission and establish boundaries on where we are allowed to go and what we are allowed to do. But on this expedition, there was very little of that; we were notified where we were going by a prefect of the Hexcasting Corps scarcely two days before we left.", + "5": "We camped near the village, but in a thick forest, even though the nearby plains would have been much more hospitable. We could barely see the village from where we pitched our tents. As I laid down my bedroll the evening we arrived, the peculiar silence troubled me. Even if we couldn't see the village, we should have been able to hear it. But the whole time we were above-ground, there was next to no sound.", + "6": "The few things I did hear all sounded like work: the peal of hammers on anvils and the scrape of hoe on dirt, for example. I never heard a shred of conversation.$(br2)The next morning we readied our lanterns and descended into the earth.", + "7": "We weren't told exactly what it was we were spelunking for, but one of the other students had overheard we were looking for more amethyst, which seemed reasonable enough. I had my eyes trained for any specks of purple I might find in the cave walls, but just as the gray stone was making way to black slate, an incredible sight unfolded before me.$(br2)It was an entire chamber made of amethyst, nearly ten times as tall as I am. The inside seemed to glow with purple sparks and lanternlight glint, every surface covered with jagged crystal. There was more amethyst here than our entire group had ever excavated since I came to the Grand.", + "8": "Gloves were distributed and we were told to get to mining. One of the prefects along with us had a peculiar lavender box I've seen some of the higher-ups in the Grand using for storage, and the other students and I dutifully got to shattering the glassy crystals off the walls of the cave and putting them in the box. Under the outer layers of brittle crystal there seemed to be two types of denser growth. One of them seemed of similar composition to the loose crystal, but one seemed more ... I struggle to find the word.", + "9": "I hesitate to say \"important,\" but that's the best I can think of. It had a certain ... gravitas, like the dark, sunken X in its surface held some sacred meaning. Whatever the reason we were under strict instructions not to touch them. Occasionally a misplaced pickaxe would shatter one, and the student responsible would get quite the earful. Although the labor was hard and took most of my attention, I couldn't help but notice how ... lucid I felt. It was a strange mix of feelings: I felt incredibly clear-headed, but I also felt if I stopped to examine the feeling I might never stop.", + "10": "It was like each breath in erected a friendly signpost in my head promising the way forward, pointing directly down a steep cliff. I shook my head and immersed myself in the work of mining, which seemed to stave off the signposts.$(br2)I did manage, however, to hide a shard of the crystal in my knapsack.$(br2)We spent nearly the whole day mining, excavating most of the crystal by the time the prefects' chronometer said the sun would set soon.", + "11": "As we left, I couldn't help but notice that on the surfaces of those dark, scored places we left unmined, there seemed to be the faintest buds of new crystal, like they were somehow growing out of them. Everything I had learned about the geology of crystals said they took thousands of years to grow, but here there was new growth in less than a day. I suppose the prefects' warnings against breaking those spots were warranted, at least.", + "12": "Our journey back to the surface was uneventful, and we got back to our tents just as the sun was setting-- My apologies, I am nearly out of paper for this letter. There's only so much you can write on one Akashic letter ... This tale is worth purchasing another letter for. I'll send them both at once, so they should arrive together.$(br2)Yours,$(br)-- Cardamom Steles", + }, + cardamom4: { + "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 2/2/$$(br2)Dear Papa,$(br)As I was saying, I was running out of paper to write my story, so the rest of it is in this letter. We made it back to camp just as the sun was setting. And that night was the most horrible event of the whole strange outing.", + "2": "I had gotten up in the middle of the night to relieve myself. The moon was covered with clouds, and I confess I got lost in the winds of the forest and could not find the way back to the camp. Fearing the monsters of the night, I decided I would find my way to the village and see if I could find a bed there. At the least, I would be protected there.", + "3": "The village was easy enough to find, though there was very little sound. Even this late at night I would expect the inn to be, if not bustling, at least not silent. But peeking through the inn door I saw absolutely nobody.$(br2)I knocked on the door of one of the houses to no response. The next two houses, too, seemed completely empty.", + "4": "My pulse started to rise, and I resolved to enter the next house. I figured whoever might be inside would be understanding of their rest being disturbed. At the least, hearing another voice would have been reassuring, even if they didn't let me stay the night under their roof.$(br2)The house was very small, barely more than a cartographer's table and a bed. I could see there was someone in the bed, and I tried to reassure myself that everyone in the village was just deeply asleep as I turned to leave.", + "5": "But then the clouds shifted, and moonlight glinted across the bed's occupant.$(br2)I screamed, and its eyes snapped open. It was ... distinctly, horrendously not human. It was like some awful de-evolution of a man, its forehead too high, its body stocky and dense. I believe it is appropriate to say \"it,\" at least; the thing before me was obviously not as wise as a human, despite how it resembled us.", + "6": "Its eyes trained on me-- oh, its eyes were awful, dull and unintelligent like a sheep's! It opened its mouth but a pained mockery of speech poured out, a shuddering, nasal groan.", + "7": "I ran. In the light of the newly-revealed moon I caught glimpses of other townspeople through windows, and they were all warped and simplified as the first $(italic)thing/$ I had seen. I sprinted into the darkness of the forest, away from those terrible, terrible animal eyes in those distorted faces.$(br2)The camp was easier to find now that I could see in the moonlight. No-one seemed to have noticed my prolonged absence, thankfully. I crawled back into my bedroll and did my very best to forget the whole night.", + "8": "As you can tell from this letter, I did not do a very good job. That warped visage still haunts my dreams. I shudder to think that it once might have been human.$(br2)After we got back to the Grand I showed the shard of crystal I had smuggled out to Amanita. She confirmed my suspicions: it is definitely a crystal of media. What an enormous geode full of it is doing underground, though, is beyond her.", + "9": "She also mentioned something interesting: apparently media can be used in a similar way to true amethyst in those niche glasses I mentioned a few letters ago. The physical manner in which they both crystallise happens to be nearly identical, and it has nothing to do with media's magical properties, or so she says.$(br2)I chose not to tell her of the village full of monsters.", + "10": "I know how tight money is for you, and how expensive it is to send a letter all the way back to the Grand, but I beg of you, please send a word of advice back. I am greatly distraught, and reading your words would do me much good.$(br2)Yours,$(br)-- Cardamom Steles", + }, + cardamom5: { + "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #4/$$(br2)Amanita has disappeared.$(br2)I don't know where she has gone, Papa. The last I saw her was over dinner, and she had just spoken to someone about the disappearances, and then--", + "2": "then-- then she was gone too. And no one speaks of her, and I am so so scared, Papa, do they all know? Everyone must have a friend who's just $(italic)vanished/$, into thin air, into non-being.$(br2)Where did they $(italic)go/$?", + "3": "They keep shutting things down, too-- we haven't been on a trip for the Geology Corps in weeks, all the apparati that collect media in the main dome are gone, the Apothecary Corps haven't been open for months... it's like termites are eating the Grand from the inside, leaving a hollow shell.$(br2)I think they've started scanning the letters, we write too...", + "4": "This letter has taken so much courage to write, and I don't have the courage to tell people myself, but if no one here can hold the knowledge I hope and pray you can send the word out... it's a vain hope for this to spread from somewhere as backwater as Brackenfalls, but please, please, do your best. Remember them, Papa... Amanita Libera, Jasmine Ward, Theodore Cha... please, remember them... and please forgive my cowardice, that I foist the responsibility onto you.", + "5": "i can no longer write, my hands shake so much, please, rescue us.", + }, + inventory: { + "1": "Cell 39, Restoration Log #72, Detainment Center Beta$(br2)Prisoner Name: Raphael Barr$(br)Crime: Knowledge of Project Wooleye$(br)Reason for Cell Vacancy: Death$(br)Additional notes: The following letter was scrawled over most of the wall space.", + "2": "I see hexagons when I close my eyes.$(br2)The patterns, they invade the space between my eyes and my eyelids, my mind, my dreams. I sparkle in and out of lucidity, like a crystal dangling from a string, sometimes catching the light, sometimes consumed by it.", + "3": "I am more lucid today. Maybe. I cannot tell anymore. I cannot even say I am tired anymore; at some point the constant companion of exhaustion left me, even as something else came to prick at my eyes. I can't sense the fatigue. But it's there.$(br2)My bones are fragile. My joints are rough and sharp.", + "4": "Sometimes why I am here comes back to me. I remember being too loud about something I knew ... I remember a very bright room where I was told things. I remember my thoughts freezing into glass, shattered, melted and recrystallized over and over and over and over and over with a purpose behind them to make me forget worse than that to keep me alive while killing me, my self, the iota of ME being meaningless because there would be no observer just a body but I tricked them I did it somehow", + "5": "they thought they broke me beyond the point of pulling the wool over my eyes but i was awake enough and am awake enough to feel PAIN$(br2)I do not sleep but when i wake up I cannot rub the crust off of my eyes because it would cut my skin and I do not want to see the purple glints inside", + "6": "They do not kill me, because my husband has my focus, and he would know if I died. But he is no Hexcaster and could not find me with his mediocre skill. i am out of ambit$(br2)it h urts to think. quite literally. the thoughts are so wasteful now the leftover striates directly onto the million microcrystals", + "7": "i remember the doctors in the bright room forcing me to inhale something like sand but sharper and it hurt so much. At first just the physical pain of mucous membranes trying to absorb shatterglass but then they got their fingernails into my stimulus-response and they could do it with a word$(br2)i remember camping out and seeing the corps setting up their circle all around a village and the ground under my feet rumbling", + "8": "drift out of time. Sometimes I believe I see visions of the future, because they seem to make sense but cannot happen now because I know i will be here until forever because the white room men said so. i see myself toppling over and my skull cracking open into halves and inside will be spears of not-amethyst dripping with blood piercing the wrinkled three pounds of fat and meat dreaming that it is a butterfly", + "9": "i hope my students are alright. why do i think that? waste. they told me i'm a waste, they couldn't be content with destroying me they had to make me feel like I deserved it the whole time, too. No sticks or stones to break my bones, just words to hurt me. if they released me no one would believe me because my body is inspectable fully i just look like one more addicted to overcasting$(br2)But they locked me up insted and i dont know if it's a mercy", + "10": "with all the media around I tried many times to cast a hex and get me out or at the least snuff out my suffering but the patterns that march through the fields of my mind snicker and dissolve when I try to reach for them. i think i remember being forced to forget them, I remember grand structures of knowledge interlinked getting chipped away and splintering as it fell apart under the weight of forced ignorance but it hurts so much to try to remember forgetting what you remembered you thought you knew", + "11": "maybe I am just in the late late late late stages of overcasting dependency, the patterns papercutting into the space between my eyes and my eyelids I have heard of, the purple edges of my nerves i have heard of. is there any point trying to make myself believe what is true I am not being tortured. I deserve this. if i will never have anyone to discuss it with ever again why try", + "12": "they're going to kill everyone n the whole world aren't they the grand needs to eat just as much as i ... when did i lasst eat$(br2)everyone else has to eat and they cannot do that if all the farmers in the world are empty and all the knowledge of farming is underground or at least someone else is going to Find out and melt their smug faces to wax", + "13": "maybe wake up someday and wonder about all the thngs we left them and wonder why there are million miles of tunnels underground with no one smart enough to mine them$(br2)i can see them reading this . they ... will be too far gone to care", + }, + experiment1: { + "1": "$(italic)I only managed to find these five entries from this log./$$(br2)Detonation #26$(li)Location: Carpenter's North$(li)Population: 174$(li)Nodes Formed: 3$(li)Node Distance from Epicenter: 55-80m vertical, 85-156m horizontal$(li)Media Generation: 1320 uθ/min", + "2": "Detonation #27$(li)Location: Brackenfalls$(li)Population: 79$(li)Nodes Formed: 1$(li)Node Distance from Epicenter: 95m vertical, 67m horizontal$(li)Media Generation: 412 uθ/min", + "3": "Detonation #28$(li)Location: Greyston$(li)Population: approx. 1000$(li)Nodes Formed: 18$(li)Node Distance from Epicenter: 47-110m vertical, 59-289m horizontal$(li)Media Generation: 8478 uθ/min", + "4": "Detonation #29$(li)Location: Unnamed; village two days west of Greyston$(li)Population: 35$(li)Nodes Formed: 0$(li)Node Distance from Epicenter: N/A$(li)Media Generation: N/A$(br2)Note: inhabitants still affected in the normal way", + "5": "Detonation #30$(li)Location: Boiling Brook$(li)Population: 231$(li)Nodes Formed: 4$(li)Node Distance from Epicenter: 61-89m vertical, 78-191m horizontal$(li)Media Generation: 1862 uθ/min", + "6": "Conclusion: approx 60 needed for one node. Too few consumes them but does not provide enough energy for node formation. Little correlation between input count and breadth/depth.$(br2)Effects on inhabitants still consistently more severe than with single-target testing, especially the physical effects.", + }, + experiment2: { + "1": "$(italic)These documents were heavily redacted. I have copied the readable text from them here./$$(br2)Subject #1 \"A.E.\"$(br)Stopped struggling immediately after procedure. Facial expression and limbs slack, but can stand unassisted. When left unattended, absently pantomimes actions commonly done in previous profession (groundskeeping).", + "2": "Heartrate high immediately after procedure, but this is inconclusive due to state of fear immediately before. Resulting bud produced 35 uθ/min.$(br)...$(br)Subject #4 \"P.I.\"$(br)Psychological tests run on P.I. Subject has object permanence, spatial awareness, basic numerical reasoning. Difficulty learning new tasks. $(br2) ...", + "3": "Subject #7 \"T.C.\"$(br)Similar results several hours after the procedure to other subjects: able to stand, perform simple tasks... $(br2)Subject #11 \"R.S.\"$(br)Sedated before procedure...$(br2) ...", + "4": "Subject #23 \"A.L.\"$(br)Ability to speak retained to a greater degree than most subjects; dwindled to broken sentences, then a single word \"card\" over the course of several hours.$(br2)For further testing: how does the procedure affect previous Hexcasters vs. non-Hexcasters?$(br2) ...", + }, + }, + interop: { + "1": "The art of _Hexcasting is versatile. If I find that my world has been $(italic)modified/$ by certain other powers, it's possible that I may use _Hexcasting in harmony and combination with them.", + "2": "I should keep in mind, however, that Nature seems to have paid less attention in crafting these aspects of my art; strange behavior and bugs are to be expected. I'm sure the mod developer will do her best to correct them, but I must remember this is a less important pastime to her.$(br2)I may also find that there are sharp disregards to balance in the costs and effects of the interoperating powers. In such a case I suppose I will have to be responsible and restrain myself from using them.", + "3": "Finally, if I find myself interested in the lore and stories of this world, I do not think any notes compiled while examining these interoperations should be considered as anything more than light trifles.", + gravity: { + "1": "I have discovered actions to get and set an entity's gravity. I find them interesting, if slightly nauseating.$(br2)Interestingly, although the $(l:patterns/spells/flight)$(action)Flight/$ spells are limited in range or duration, and manipulate gravity similarly, these are not. It baffles me why... Perhaps the mod developer wanted players to have fun, for once.", + get: "Get the main direction gravity pulls the given entity in, as a unit vector. For most entities, this will be down, <0, -1, 0>.", + set: "Set the main direction gravity pulls the given entity in. The given vector will be coerced into the nearest axis, as per $(l:patterns/math#hexcasting:coerce_axial)$(action)Axial Purification/$. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + }, + pehkui: { + "1": "I have discovered methods of changing the size of entities, and querying how much larger or smaller they are than normal.", + get: "Get the scale of the entity, as a proportion of their normal size. For most entities, this will be 1.", + set: "Set the scale of the entity, passing in a proportion of their normal size. Costs about 1 $(item)Amethyst Shard/$.", + }, + }, + }, + }, + "itemGroup.hexcasting": { + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Pergaminos)", + }, + "category.hexcasting": { + binds: "Hex Casting", + }, + "key.hexcasting": { + spellbook_prev: "Anterior página del libro de hechizos", + spellbook_next: "Siguiente página del libro de hechizos", + }, +} diff --git a/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -0,0 +1 @@ +{} From cbf3cc13ce22a9bee1808aeb4bbdc8e287a2b60a Mon Sep 17 00:00:00 2001 From: KOCTEP Date: Sun, 16 Aug 2026 19:01:24 +0000 Subject: [PATCH 04/50] chore(l10n): update Russian translation Co-authored-by: KOCTEP Language: Russian Progress: 94.2% (1306 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../assets/hexcasting/lang/ru_ru.flatten.json5 | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index d1aa3b4d87..aac1ef149f 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -312,6 +312,9 @@ "": "Всегда показывать запятые списка", "@Tooltip": "Будут ли все типы йот разделяться запятой внутри списков (по стандарту, йоты рун не используют запятые)", }, + staticActiveSlates: { + "@Tooltip": "Будут ли руны на активных скрижалях прорисованы без покачивания (улучшает производительность при большом количестве скрижалей)", + }, }, server: { opBreakHarvestLevel: { @@ -522,6 +525,7 @@ scroll: { needs_purchase: "Купите, чтобы увидеть руны", pattern_not_loaded: "Поместите в инвентарь, чтобы загрузить руны", + "recalc_warning.line2": "Введите команду /hexcasting recalcPatterns и возьмите новый свиток.", }, abacus: { "": "%d", @@ -632,6 +636,7 @@ pi: "Отражение арки", tau: "Отражение круга", e: "Отражение Эйлера", + phi: "Отражение гармонии", }, }, get_caster: "Отражение Нарцисса", @@ -810,6 +815,12 @@ set: "Изменить Размер", }, }, + type_equals: "Объединение сходств", + type_not_equals: "Объединение различий", + "compare_item/": { + lenient: "Объединение сортировщика", + strict: "Объединение Кучки", + }, }, "book.hexcasting:": { get_entity_height: "Высот Преобр.", @@ -1830,4 +1841,8 @@ }, }, }, + "key.hexcasting": { + spellbook_prev: "Предыдущая Страница Книги Заклинаний", + spellbook_next: "Следующая страница книги заклинаний", + }, } From 83c8355d1893c739002db024829352b96cef9630 Mon Sep 17 00:00:00 2001 From: arsvenutia Date: Sun, 16 Aug 2026 19:01:25 +0000 Subject: [PATCH 05/50] chore(l10n): update French translation chore(l10n): update French translation Co-authored-by: arsvenutia Language: French Progress: 12.0% (167 of 1386 strings) Progress: 4.0% (56 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 | 77 ++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) 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 0967ef424b..41bf1de838 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 @@ -1 +1,76 @@ -{} +{ + "item.hexcasting": { + staff: { + oak: "Bâton en chêne", + spruce: "Sceptre en sapin", + birch: "Sceptre en bouleau", + jungle: "Sceptre en acajou", + acacia: "Sceptre en acacia", + dark_oak: "Sceptre en chêne noir", + crimson: "Sceptre carmin", + warped: "Sceptre biscornu", + mangrove: "Bâton en palétuvier", + cherry: "Bâton en cerisier", + bamboo: "Bâton en bambou", + edified: "Bâton édifiant", + }, + amethyst_dust: "Poussière d'améthyste", + charged_amethyst: "Améthyste chargée", + scroll_small: { + "": "Petit rouleau", + empty: "Petit rouleau vide", + }, + scroll_medium: { + "": "Moyen rouleau", + empty: "Moyen rouleau vide", + }, + scroll: { + "": "Grand rouleau", + of: "Ancien rouleau de %s", + empty: "Grand rouleau vide", + }, + thought_knot: "Nœud de idée", + spellbook: "Grimoire", + trinket: "Babiole", + battery: "Fiole de média", + abacus: "Boulier", + jeweler_hammer: "Marteau de bijoutier", + sub_sandwich: "Sandwich baguette", + dye_colorizer_: { + white: "Pigment blanc", + orange: "Pigment orange", + magenta: "Pigment magenta", + light_blue: "Pigment bleu clair", + yellow: "Pigment jaune", + lime: "Pigment vert clair", + pink: "Pigment rose", + gray: "Pigment gris", + light_gray: "Pigment gris clair", + cyan: "Pigment cyan", + purple: "Pigment violet", + blue: "Pigment bleu", + brown: "Pigment marron", + green: "Pigment vert", + red: "Pigment rouge", + black: "Pigment noir", + }, + pride_colorizer_: { + agender: "Pigment agenre", + aromantic: "Pigment aromantique", + asexual: "Pigment asexuel", + bisexual: "Pigment bisexuel", + lesbian: "Pigment lesbien", + nonbinary: "Pigment non binaire", + pansexual: "Pigment pansexuel", + transgender: "Pigment transgenre", + }, + ancient_colorizer: "Ancien pigment", + creative_unlocker: { + "": "Le cube de média", + for_emphasis: "MÉDIA INFINI", + }, + }, + "entity.hexcasting": { + wall_scroll: "Rouleau suspendu", + }, +} From f7d66f2f6b1eb319bf28d86a43237786fc976f60 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sun, 16 Aug 2026 19:01:25 +0000 Subject: [PATCH 06/50] chore(l10n): update translation files Add-on: Remove blank strings Co-authored-by: Hexxy Weblate Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 187 ------------------ 1 file changed, 187 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index e34bdb3a5e..bc2b3c7d27 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -356,228 +356,41 @@ }, creative_unlocker: { "": "¡PODER INFINITO!", - desc: "", - }, - enlightenment: { - "": "", - desc: "", - }, - wasteful_cast: { - "": "", - desc: "", - }, - big_cast: { - "": "", - desc: "", - }, - y_u_no_cast_angy: { - "": "", - desc: "", - }, - opened_eyes: { - "": "", - desc: "", }, lore: { "": "Relatos del Magificio", - desc: "", - }, - "lore/": { - cardamom1: { - "": "", - desc: "", - }, - cardamom2: { - "": "", - desc: "", - }, - cardamom3: { - "": "", - desc: "", - }, - cardamom4: { - "": "", - desc: "", - }, - cardamom5: { - "": "", - desc: "", - }, - experiment1: "", - experiment2: "", - inventory: "", - }, - }, - "stat.hexcasting": { - media_used: "", - media_overcast: "", - patterns_drawn: "", - spells_cast: "", - }, - "death.attack.hexcasting": { - overcast: { - "": "", - player: "", - }, - }, - "command.hexcasting": { - recalc: "", - pats: { - listing: "", - all: "", - "specific.success": "", - }, - brainsweep: { - "": "", - "fail.badtype": "", - "fail.already": "", }, }, "matcher.hexcasting.pattern": { - title: "", - "title.styled": "", - description: "", example: "", }, hexcasting: { - "pattern.unknown": "", - debug: { - media_withdrawn: "", - "media_withdrawn.with_dust": "", - media_inserted: "", - "media_inserted.with_dust": "", - all_media: "", - infinite_media: "", - }, - message: { - cant_overcast: "", - cant_great_spell: "", - }, tooltip: { - spellbook: { - page: { - "": "", - sealed: "", - }, - page_with_name: { - "": "", - sealed: "", - }, - empty: { - "": "", - sealed: "", - }, - sealed: "", - }, abacus: { "": "%d", reset: "Reset to 0", - "reset.nice": "", - }, - circle: { - no_exit: "", - many_exits: "", - no_closure: "", - }, - lens: { - "pattern.invalid": "", - bee: { - "": "", - single: "", - }, - "impetus.redstone.bound": { - "": "", - none: "", - }, - akashic: { - "bookshelf.location": "", - "record.count": { - "": "", - single: "", - }, - }, }, brainsweep: { - min_level: "", level: "Level %s", - product: "", }, - media: "", - media_amount: "", - "media_amount.advanced": "", list_contents: "[%s]", null_iota: "Null", - jump_iota: "", - pattern_iota: "", boolean_true: "True", boolean_false: "False", }, - spelldata: { - onitem: "", - anything: "", - unknown: "", - "entity.whoknows": "", - "akashic.nopos": "", - }, subtitles: { - casting: { - pattern: { - start: "", - add_segment: "", - }, - cast: { - normal: "", - spell: "", - hermes: "", - thoth: "", - }, - }, - ambiance: "", - "staff.reset": "", - abacus: { - "": "", - shake: "", - }, - "spellcircle.add_pattern": "", - "spellcircle.fail": "", "scroll.dust": "t", - "scroll.scribble": "", "impetus.fletcher.tick": "s", - "impetus.redstone.register": "", - "impetus.redstone.clear": "", - "lore_fragment.read": "", - "flight.ambience": "", - "flight.finish": "", - }, - attributes: { - grid_zoom: "", - scry_sight: "", }, action: { "hexcasting:": { "const/": { - "null": "", - "true": "", - "false": "", "vec/": { - px: "", - py: "", - pz: "", - nx: "", - ny: "", - nz: "", "0": "o", }, - "double/": { - pi: "", - tau: "", - e: "", - }, }, get_caster: "Reflejo de mente", - "entity_pos/eye": "", "entity_pos/foot": "II", - get_entity_look: "", get_entity_height: "Stadiometer's Purification", get_entity_velocity: "Pace Purification", raycast: "Archer's Distillation", From 248ad801ceeba341e0e08bde5e92adba71983eca Mon Sep 17 00:00:00 2001 From: DarkThunderer Date: Sun, 16 Aug 2026 19:01:25 +0000 Subject: [PATCH 07/50] chore(l10n): update Russian translation Co-authored-by: DarkThunderer Language: Russian Progress: 97.8% (1356 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../hexcasting/lang/ru_ru.flatten.json5 | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index aac1ef149f..dbc3776996 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -315,6 +315,14 @@ staticActiveSlates: { "@Tooltip": "Будут ли руны на активных скрижалях прорисованы без покачивания (улучшает производительность при большом количестве скрижалей)", }, + disableInworldScrolling: { + "": "Отключить Прокрутку в Мире", + "@Tooltip": "Переключение прокрутки Книг Заклинаний и Счётов в мире, с сохранением прокрутки при использовании посоха", + }, + advancedTooltipsShowsIotaNBT: { + "": "Отображение NBT Йот в описании предметов при использовании Расширенных Подсказок", + "@Tooltip": "Определяет будут ли отображаться Йоты в предметах по типу Фокуса и Книги Заклинаний при использовании Расширенных Подсказок (F3+H)", + }, }, server: { opBreakHarvestLevel: { @@ -381,6 +389,14 @@ "": "Изменение Шанса Выпадения Осколков Аметиста", "@Tooltip": "Насколько количество выпадаемых осколков аметиста увеличено/уменьшено.", }, + globalCostScaling: { + "": "Глобальный Множитель Стоимости", + "@Tooltip": "Затрагивает стоимость всех действий, за исключением указанных в #hexcasting:cannot_modify_cost. Если вы хотите модифицировать стоимость действия которое указано в данном теге, используйте полный список модификаторов стоимости.", + }, + costRescaleListRaw: { + "": "Список Множителей Стоимости для каждого Действия", + "@Tooltip": "Соотносит идентификатор действия к множителю его стоимости. Например hexcasting:add_motion 3 умножит стоимость знака Импульс в 3 раза.", + }, }, }, }, @@ -526,6 +542,7 @@ needs_purchase: "Купите, чтобы увидеть руны", pattern_not_loaded: "Поместите в инвентарь, чтобы загрузить руны", "recalc_warning.line2": "Введите команду /hexcasting recalcPatterns и возьмите новый свиток.", + "recalc_warning.line1": "Схема знака %s ещё не была составлена для этого мира!", }, abacus: { "": "%d", @@ -821,6 +838,20 @@ lenient: "Объединение сортировщика", strict: "Объединение Кучки", }, + get_media: "Отражение Мысли", + "compare_block/": { + lenient: "Объединение Строителя", + strict: "Объединение Инспектора", + }, + compare_entity: "Объединение Биолога", + escape: "Рассмотрение", + runtime_escape: "Представление", + open_paren: "Интроспекция", + close_paren: "Ретроспекция", + open_n_parens: "Медитация", + close_all_parens: "Пробуждение", + read_into_parens: "Внедрение", + undo: "Исчезновение", }, "book.hexcasting:": { get_entity_height: "Высот Преобр.", @@ -921,9 +952,14 @@ item: "предмет-сущность", player: "игрок", living: "живая сущность", + mob: "Моб", + item_holder: "Сущность, держащая предмет", }, entity_or_vector: "сущность или вектор", unknown: "(неизвестно, это ошибка)", + continuation: "Йота прыжка", + garbage: "Мусор", + "null": "Ничто", }, numvec: "число или вектор", numlist: "целое число или список", @@ -971,6 +1007,8 @@ rechargable: "перезаряжаемый предмет", colorizer: "Пигмент", variant: "предмет с вариантами", + hotbar: "требуется %s в хотбаре", + placeable: "размещаемый предмет", }, bad_block: { "": "Ожидал %s при %s, но получил %s", @@ -981,6 +1019,10 @@ no_bool: "значение йоты, обнаруженное в %s, было %s, а не bool", empty_stack: "стек был пуст в момент %s", }, + invalid_pattern_generic: "Этот знак не соответствует какому-либо действию", + needs_parens: "В начале примените Интроспекцию", + disallowed_generic: "Применение этого знака запрещено администраторами сервера", + disallowed_circle_generic: "Применение этого знака в волшебном круге было запрещено администраторами сервера", }, circles: { no_exit: "Поток мысли в %s не смог найти выход", @@ -1102,6 +1144,9 @@ gravity: "Gravity Changer", pehkui: "Pehkui", }, + whats_a_hex: "Что такое Хекс?", + types: "Типы Йот", + advanced_escaping: "Продвинутые Абстракции", }, page: { creative_items: { @@ -1813,31 +1858,47 @@ set: "Устанавливает масштаб сущности, передавая пропорцию её нормального размера. Стоимость около 1 $(item)Осколка Аметиста/$.", }, }, + whats_a_hex: { + "1": "По сути своей, любой _Хекс, как это уже описывалось в главе $(l:casting/101)Чародейство и Вы/$, представляет собой набор Действий, которые последовательно выполняются для достижения какого-либо эффекта.$(br2)И пусть знаки для выполнения нужных действий можно с лёгкостью чертить на лету, иногда может потребоваться сохранить созданное заклинание для повторного использования или распространения.", + "2": "Для этого требуется создать список йот знаков. Как это сделать подробно описано в $(l:patterns/patterns_as_iotas)Escaping Patterns/$. Записав таким образом _Хекс внутрь Стека, возможно мгновенно его исполнить с помощью знаков мета-исполнения вроде $(l:patterns/meta#hexcasting:eval)Гамбита Гермеса/$ или поместить внутрь $(l:items/hexcasting)Колдовского Предмета/$ для постоянного использования.$(br2)Что интересно - список знаков ничем не отличается от любого другого списка, то есть _Хекс можно переделать, сохранить внутрь $(l:items/thought_knot)какого-либо/$ $(l:items/focus)хранилища/$, или даже сделать частью _Хекса побольше!", + }, }, "iota.hexcasting:": { "null": { "": "Ничто", + desc: "Отсутствие значения", }, double: { "": "Число", + desc: "Число", }, boolean: { "": "Истина/Ложь", + desc: "Истинность", }, entity: { "": "Сущность", + desc: "Сущность", }, list: { "": "Список", + desc: "Список", }, pattern: { "": "Руна", + desc: "Знак", }, garbage: { "": "Мусор", + desc: "Мусор", }, vec3: { "": "Вектор", + desc: "Вектор", + }, + continution: { + "": "Продолжение", + desc: "Йота прыжка", }, }, }, @@ -1845,4 +1906,7 @@ spellbook_prev: "Предыдущая Страница Книги Заклинаний", spellbook_next: "Следующая страница книги заклинаний", }, + "category.hexcasting": { + binds: "Хэкс Кастинг", + }, } From 884d98b6f5e1fcbeb3d494f6085b3755704c0a00 Mon Sep 17 00:00:00 2001 From: kalachik Date: Sun, 16 Aug 2026 19:01:25 +0000 Subject: [PATCH 08/50] chore(l10n): update Russian translation Co-authored-by: kalachik Language: Russian Progress: 97.8% (1356 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../resources/assets/hexcasting/lang/ru_ru.flatten.json5 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index dbc3776996..6fbfc4c40d 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -1860,7 +1860,12 @@ }, whats_a_hex: { "1": "По сути своей, любой _Хекс, как это уже описывалось в главе $(l:casting/101)Чародейство и Вы/$, представляет собой набор Действий, которые последовательно выполняются для достижения какого-либо эффекта.$(br2)И пусть знаки для выполнения нужных действий можно с лёгкостью чертить на лету, иногда может потребоваться сохранить созданное заклинание для повторного использования или распространения.", - "2": "Для этого требуется создать список йот знаков. Как это сделать подробно описано в $(l:patterns/patterns_as_iotas)Escaping Patterns/$. Записав таким образом _Хекс внутрь Стека, возможно мгновенно его исполнить с помощью знаков мета-исполнения вроде $(l:patterns/meta#hexcasting:eval)Гамбита Гермеса/$ или поместить внутрь $(l:items/hexcasting)Колдовского Предмета/$ для постоянного использования.$(br2)Что интересно - список знаков ничем не отличается от любого другого списка, то есть _Хекс можно переделать, сохранить внутрь $(l:items/thought_knot)какого-либо/$ $(l:items/focus)хранилища/$, или даже сделать частью _Хекса побольше!", + "2": "Для этого требуется создать список йот знаков. Как это сделать подробно описано в $(l:patterns/patterns_as_iotas)Escaping Patterns/$. Записав таким образом _Хекс внутрь Стека, возможно мгновенно его исполнить с помощью знаков мета-исполнения вроде $(l:patterns/meta#hexcasting:eval)Гамбита Гермеса/$ или поместить внутрь $(l:items/hexcasting)Колдовского Предмета/$ для постоянного использования.$(br2)Что интересно - список знаков ничем не отличается от любого другого списка, то есть _Хекс можно переделать, сохранить внутрь $(l:items/thought_knot)какого-либо/$ $(l:items/focus)хранилища/$, или даже сделать частью _Хекса побольше!", + }, + types: { + type_equals: "Сравнивает данные йоты и выдает, одного ли они типа.", + type_not_equals: "Сравнивает данные йоты и выдает, разных ли они типов.", + compare_entity: "Сравнивает данных сущностей и выдает, одного ли они типа.", }, }, "iota.hexcasting:": { From 341c90502a56e561e2b1a556cb63d598eff8d1e1 Mon Sep 17 00:00:00 2001 From: DarkThunderer Date: Sun, 16 Aug 2026 19:01:26 +0000 Subject: [PATCH 09/50] chore(l10n): update Russian translation chore(l10n): update Russian translation Co-authored-by: DarkThunderer Language: Russian Progress: 97.8% (1356 of 1386 strings) Progress: 97.9% (1358 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index 6fbfc4c40d..30947a7fba 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -1224,6 +1224,8 @@ "1": "Похоже, мне придется быть искусным с векторами, если я собираюсь добиться успеха в своих исследованиях. Я собрал здесь некоторые ресурсы по векторам, если обнаружу, что не знаю, как с ними работать.$(br2)Прежде всего, просветительское видео по этой теме.", "2": "Кроме того, кажется, что маги, которые манипулировали $(thing)Псиэнергией/$ (так называемые \"мастера заклинаний\"), несмотря на их плохой вкус в названиях, имели некоторые довольно эффективные уроки по векторам для своих последователей. Я позволил себе разместить ссылку на один из их текстов на следующей странице.$(br2)Похоже, что они использовали другой язык для своего колдовства:$(li)\"Spell Piece\" было их название для действия;$(li)\"Trick\" было их название для заклинания; и$(li)\"Operator\" было их название для не-заклинательного действия.", "3": "Ссылка Сдесь.", + "4": "Например, если у меня есть вектор местоположения блока, а я хочу получить координаты блока над ним, мне потребуется увеличить Y компонент вектора координат на 1. Сделать это проще всего сложив исходный вектор с новым вектором (0, 1, 0). Если я захочу выбрать блок на два блока восточнее - надо будет добавить вектор (2, 0, 0). Эти новые вектора представляют собой $(o)сдвиг/$ в определённом направлении по координатной сетке.", + "5": "Не стоит, правда, забывать что разделение векторов на координатные и сдвиговые существует лишь у нас в голове, каких-то фундаментальных отличий меж ними нет - векторы это всего лишь группы чисел. Вектор координат можно представить как сдвиг от неких нулевых координат, а вектор сдвига как местоположение объекта в новой системе координат с центром в точке исполнения заклинания.", }, mishaps: { "1": "К сожалению, я не совершенное существо (пока что). Иногда я допускаю ошибки в своих исследованиях и сотворении $(#b38ef3)Заговоров/$; например, я неправильно черчу руны или иногда пытаюсь вызвать действие с неправильными йотами. И Природа обычно не смотрит на мои ошибки благосклонно-- вызывая то, что называется $(italic)провалом/$.", @@ -1861,6 +1863,7 @@ whats_a_hex: { "1": "По сути своей, любой _Хекс, как это уже описывалось в главе $(l:casting/101)Чародейство и Вы/$, представляет собой набор Действий, которые последовательно выполняются для достижения какого-либо эффекта.$(br2)И пусть знаки для выполнения нужных действий можно с лёгкостью чертить на лету, иногда может потребоваться сохранить созданное заклинание для повторного использования или распространения.", "2": "Для этого требуется создать список йот знаков. Как это сделать подробно описано в $(l:patterns/patterns_as_iotas)Escaping Patterns/$. Записав таким образом _Хекс внутрь Стека, возможно мгновенно его исполнить с помощью знаков мета-исполнения вроде $(l:patterns/meta#hexcasting:eval)Гамбита Гермеса/$ или поместить внутрь $(l:items/hexcasting)Колдовского Предмета/$ для постоянного использования.$(br2)Что интересно - список знаков ничем не отличается от любого другого списка, то есть _Хекс можно переделать, сохранить внутрь $(l:items/thought_knot)какого-либо/$ $(l:items/focus)хранилища/$, или даже сделать частью _Хекса побольше!", + "3": "Также полезно знать что список не обязан состоять именно из йот знаков. Пусть обычно включение иных йот в _Хексы и не приводит ни к чему хорошему, существуют $(l:patterns/patterns_as_iotas#iota_embedding)определённые техники/$, позволяющие избежать осечек. Кроме того, $(l:patterns/meta#hexcasting:eval/cc)некоторые йоты/$ могут напрямую считываться прямо как знаки.$(br2)Подводя итог, в теории _Хексом можно считать $(o)любой/$ список йот подлежащий исполнению.", }, types: { type_equals: "Сравнивает данные йоты и выдает, одного ли они типа.", From e0155e552890890d45a9559f7cf021f8b017df5e Mon Sep 17 00:00:00 2001 From: Christian perez Date: Sun, 16 Aug 2026 19:01:26 +0000 Subject: [PATCH 10/50] chore(l10n): update Spanish translation Co-authored-by: Christian perez Language: Spanish Progress: 69.2% (960 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 334 +++++++++--------- 1 file changed, 167 insertions(+), 167 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index bc2b3c7d27..6f3ae415f3 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -355,7 +355,7 @@ desc: "Encuentra y mina una forma concentrada de media crecidendo profundo de la tierra.", }, creative_unlocker: { - "": "¡PODER INFINITO!", + "": "¡PODER ILIMITADO!", }, lore: { "": "Relatos del Magificio", @@ -391,195 +391,195 @@ }, get_caster: "Reflejo de mente", "entity_pos/foot": "II", - get_entity_height: "Stadiometer's Purification", - get_entity_velocity: "Pace Purification", - raycast: "Archer's Distillation", - "raycast/axis": "Architect's Distillation", - "raycast/entity": "Scout's Distillation", + get_entity_height: "", + get_entity_velocity: "", + raycast: "", + "raycast/axis": "", + "raycast/entity": "", "circle/": { - impetus_pos: "Waystone Reflection", - impetus_dir: "Lodestone Reflection", - "bounds/min": "Lesser Fold Reflection", - "bounds/max": "Greater Fold Reflection", + impetus_pos: "", + impetus_dir: "", + "bounds/min": "", + "bounds/max": "", }, - append: "Integration Distillation", - unappend: "Derivation Decomposition", - index: "Selection Distillation", - singleton: "Single's Purification", - empty_list: "Vacant Reflection", - reverse: "Retrograde Purification", - last_n_list: "Flock's Gambit", - splat: "Flock's Disintegration", - index_of: "Locator's Distillation", - remove_from: "Excisor's Distillation", - slice: "Selection Exaltation", - replace: "Surgeon's Exaltation", - construct: "Speaker's Distillation", - deconstruct: "Speaker's Decomposition", - get_entity: "Entity Purification", + append: "", + unappend: "", + index: "", + singleton: "", + empty_list: "", + reverse: "", + last_n_list: "", + splat: "", + index_of: "", + remove_from: "", + slice: "", + replace: "", + construct: "", + deconstruct: "", + get_entity: "", "get_entity/": { - animal: "Entity Purification: Animal", - monster: "Entity Purification: Monster", - item: "Entity Purification: Item", - player: "Entity Purification: Player", - living: "Entity Purification: Living", + animal: "", + monster: "", + item: "", + player: "", + living: "", }, - zone_entity: "Zone Distillation: Any", + zone_entity: "", "zone_entity/": { - animal: "Zone Distillation: Animal", - monster: "Zone Distillation: Monster", - item: "Zone Distillation: Item", - player: "Zone Distillation: Player", - living: "Zone Distillation: Living", - not_animal: "Zone Distillation: Non-Animal", - not_monster: "Zone Distillation: Non-Monster", - not_item: "Zone Distillation: Non-Item", - not_player: "Zone Distillation: Non-Player", - not_living: "Zone Distillation: Non-Living", + animal: "", + monster: "", + item: "", + player: "", + living: "", + not_animal: "", + not_monster: "", + not_item: "", + not_player: "", + not_living: "", }, - swap: "Jester's Gambit", - rotate: "Rotation Gambit", - rotate_reverse: "Rotation Gambit II", - duplicate: "Gemini Decomposition", - over: "Prospector's Gambit", - tuck: "Undertaker's Gambit", - "2dup": "Dioscuri Gambit", - duplicate_n: "Gemini Gambit", - stack_len: "Flock's Reflection", - fisherman: "Fisherman's Gambit", - "fisherman/copy": "Fisherman's Gambit II", - swizzle: "Swindler's Gambit", - unique: "Uniqueness Purification", - and: "Conjunction Distillation", - or: "Disjunction Distillation", - xor: "Exclusion Distillation", - greater: "Maximus Distillation", - less: "Minimus Distillation", - greater_eq: "Maximus Distillation II", - less_eq: "Minimus Distillation II", - equals: "Equality Distillation", - not_equals: "Inequality Distillation", - not: "Negation Purification", - bool_coerce: "Augur's Purification", - "if": "Augur's Exaltation", - add: "Additive Distillation", - sub: "Subtractive Distillation", - mul: "Multiplicative Distillation", - div: "Division Distillation", - abs: "Length Purification", - pow: "Power Distillation", - floor: "Floor Purification", - ceil: "Ceiling Purification", - modulo: "Modulus Distillation", - construct_vec: "Vector Exaltation", - deconstruct_vec: "Vector Disintegration", - sin: "Sine Purification", - cos: "Cosine Purification", - tan: "Tangent Purification", - arcsin: "Inverse Sine Purification", - arccos: "Inverse Cosine Purification", - arctan: "Inverse Tangent Purification", - arctan2: "Inverse Tangent Purification II", - random: "Entropy Reflection", - logarithm: "Logarithmic Distillation", - coerce_axial: "Axial Purification", - read: "Scribe's Reflection", - "read/entity": "Chronicler's Purification", - "read/local": "Muninn's Reflection", - write: "Scribe's Gambit", - "write/entity": "Chronicler's Gambit", - "write/local": "Huginn's Gambit", - readable: "Auditor's Reflection", - "readable/entity": "Auditor's Purification", - writable: "Assessor's Reflection", - "writable/entity": "Assessor's Purification", - "akashic/read": "Akasha's Distillation", - "akashic/write": "Akasha's Gambit", - print: "Reveal", - beep: "Make Note", - explode: "Explosion", - "explode/fire": "Fireball", - add_motion: "Impulse", - blink: "Blink", + swap: "", + rotate: "", + rotate_reverse: "", + duplicate: "", + over: "", + tuck: "", + "2dup": "", + duplicate_n: "", + stack_len: "", + fisherman: "", + "fisherman/copy": "", + swizzle: "", + unique: "", + and: "", + or: "", + xor: "", + greater: "", + less: "", + greater_eq: "", + less_eq: "", + equals: "", + not_equals: "", + not: "", + bool_coerce: "", + "if": "", + add: "", + sub: "", + mul: "", + div: "", + abs: "", + pow: "", + floor: "", + ceil: "", + modulo: "", + construct_vec: "", + deconstruct_vec: "", + sin: "", + cos: "", + tan: "", + arcsin: "", + arccos: "", + arctan: "", + arctan2: "", + random: "", + logarithm: "", + coerce_axial: "", + read: "", + "read/entity": "", + "read/local": "", + write: "", + "write/entity": "", + "write/local": "", + readable: "", + "readable/entity": "", + writable: "", + "writable/entity": "", + "akashic/read": "", + "akashic/write": "", + print: "", + beep: "", + explode: "", + "explode/fire": "", + add_motion: "", + blink: "", break_block: "Rotura Bloque", - place_block: "Place Block", - "craft/cypher": "Craft Cypher", - "craft/trinket": "Craft Trinket", - "craft/artifact": "Craft Artifact", + place_block: "", + "craft/cypher": "", + "craft/trinket": "", + "craft/artifact": "", "craft/battery": "Craftear frasco", - recharge: "Recharge Item", - erase: "Erase Item", - create_water: "Create Water", - destroy_water: "Destroy Liquid", - ignite: "Ignite", - extinguish: "Extinguish Area", - conjure_block: "Conjure Block", - conjure_light: "Conjure Light", - bonemeal: "Overgrow", + recharge: "", + erase: "", + create_water: "", + destroy_water: "", + ignite: "", + extinguish: "", + conjure_block: "", + conjure_light: "", + bonemeal: "", edify: "Edificar arbolito", - colorize: "Internalize Pigment", - cycle_variant: "Caster's Glamour", + colorize: "", + cycle_variant: "", "sentinel/": { - create: "Summon Sentinel", - "create/great": "Summon Greater Sentinel", - destroy: "Banish Sentinel", - get_pos: "Locate Sentinel", - wayfind: "Wayfind Sentinel", + create: "", + "create/great": "", + destroy: "", + get_pos: "", + wayfind: "", }, "potion/": { - weakness: "White Sun's Nadir", - levitation: "Blue Sun's Nadir", - wither: "Black Sun's Nadir", - poison: "Red Sun's Nadir", - slowness: "Green Sun's Nadir", - regeneration: "White Sun's Zenith", - night_vision: "Blue Sun's Zenith", - absorption: "Black Sun's Zenith", - haste: "Red Sun's Zenith", - strength: "Green Sun's Zenith", + weakness: "", + levitation: "", + wither: "", + poison: "", + slowness: "", + regeneration: "", + night_vision: "", + absorption: "", + haste: "", + strength: "", }, - flight: "Altiora", - "flight/range": "Anchorite's Flight", - "flight/time": "Wayfarer's Flight", - "flight/can_fly": "Aviator's Purification", - lightning: "Summon Lightning", - summon_rain: "Summon Rain", - dispel_rain: "Dispel Rain", - create_lava: "Create Lava", - "teleport/great": "Greater Teleport", + flight: "", + "flight/range": "", + "flight/time": "", + "flight/can_fly": "", + lightning: "", + summon_rain: "", + dispel_rain: "", + create_lava: "", + "teleport/great": "", brainsweep: "Desollar mente", - eval: "Hermes' Gambit", - "eval/cc": "Iris' Gambit", - for_each: "Thoth's Gambit", - halt: "Charon's Gambit", - thanatos: "Thanatos' Reflection", + eval: "", + "eval/cc": "", + for_each: "", + halt: "", + thanatos: "", "interop/": { "gravity/": { - get: "Gravitational Purification", - set: "Alter Gravity", + get: "", + set: "", }, "pehkui/": { - get: "Gulliver's Purification", - set: "Alter Scale", + get: "", + set: "", }, }, }, "book.hexcasting:": { - get_entity_height: "Stadiometer's Prfn.", + get_entity_height: "", "get_entity/": { - animal: "Entity Prfn.: Animal", - monster: "Entity Prfn.: Monster", - item: "Entity Prfn.: Item", - player: "Entity Prfn.: Player", - living: "Entity Prfn.: Living", + animal: "", + monster: "", + item: "", + player: "", + living: "", }, - zone_entity: "Zone Dstl.: Any", + zone_entity: "", "zone_entity/": { - animal: "Zone Dstl.: Animal", - monster: "Zone Dstl.: Monster", - item: "Zone Dstl.: Item", - player: "Zone Dstl.: Player", - living: "Zone Dstl.: Living", + animal: "", + monster: "", + item: "", + player: "", + living: "", not_animal: "Zone Dstl.: Non-Animal", not_monster: "Zone Dstl.: Non-Monster", not_item: "Zone Dstl.: Non-Item", @@ -591,7 +591,7 @@ arcsin: "Inverse Sine Prfn.", arccos: "Inverse Cosine Prfn.", arctan: "Inverse Tangent Prfn.", - arctan2: "Inverse Tan. Prfn. II", + arctan2: "", "const/vec/": { x: "Vector Rfln. +X/-X", y: "Vector Rfln. +Y/-Y", @@ -918,7 +918,7 @@ "4": "It's interesting to note that the $(italic)rotation/$ of a pattern doesn't seem to matter at all. These two patterns both perform an action called $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, for example.", "5": "A _Hex is cast by drawing (valid) actions in sequence. Each action might do one of a few things:$(li)Gather some information about the environment, leaving it on the top of the stack;$(li)manipulate the info gathered (e.g. adding two numbers); or$(li)perform some magical effect, like summoning lightning or an explosion. (These actions are called \"spells.\")$(p)When I start casting a _Hex, it creates an empty stack. Actions manipulate the top of that stack.", "6": "For example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ will create an iota representing $(italic)me/$, the caster, and add it to the top of the stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$ will take the iota at the top the stack, if it represents an entity, and transform it into an iota representing that entity's location.$(br2)So, drawing those patterns in that order would result in an iota on the stack representing my position.", - "7": "$(thing)Iotas/$ can represent things like myself or my position, but there are several other types I can manipulate with $(thing)Actions/$. Here's a comprehensive list:$(li)Numbers (which some legends called \"doubles\");$(li)Vectors, a collection of three numbers representing a position, movement, or direction in the world;$(li)Booleans or \"bools\" for short, representing an abstract True or False,", + "7": "", "8": "$(li)Entities, like myself, chickens, and minecarts;$(li)Influences, peculiar types of iota that seem to represent abstract ideas;$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$; and$(li)A list of several of the above, gathered into a single iota.", "9": "Of course, there's no such thing as a free lunch. All spells, and certain other actions, require _media as payment.$(br2)The best I can figure, a _Hex is a little bit like a plan of action presented to Nature-- in this analogy, the _media is used to provide the arguments to back it up, so Nature will accept your plan and carry it out.", "10": "That aside, it doesn't seem like anyone has done much research on exactly how $(italic)much/$ any particular piece of $(l:items/amethyst)$(item)amethyst/$ is valued. The best I can tell, an $(l:items/amethyst)$(item)Amethyst Shard/$ is worth about five pieces of $(l:items/amethyst)$(item)Amethyst Dust/$, and a $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ is worth about ten.$(br2)Strangely enough, it seems like no other form of $(l:items/amethyst)$(item)amethyst/$ is suitable to be used in the casting of a _Hex. I suspect that whole blocks or crystals are too solid to be easily unraveled into _media.", From a28f9385ff8edf724b1a708a12f09e96b9cfe514 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sun, 16 Aug 2026 19:01:26 +0000 Subject: [PATCH 11/50] chore(l10n): update translation files Add-on: Remove blank strings Co-authored-by: Hexxy Weblate Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 184 ------------------ 1 file changed, 184 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index 6f3ae415f3..e6781cfe85 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -391,195 +391,13 @@ }, get_caster: "Reflejo de mente", "entity_pos/foot": "II", - get_entity_height: "", - get_entity_velocity: "", - raycast: "", - "raycast/axis": "", - "raycast/entity": "", - "circle/": { - impetus_pos: "", - impetus_dir: "", - "bounds/min": "", - "bounds/max": "", - }, - append: "", - unappend: "", - index: "", - singleton: "", - empty_list: "", - reverse: "", - last_n_list: "", - splat: "", - index_of: "", - remove_from: "", - slice: "", - replace: "", - construct: "", - deconstruct: "", - get_entity: "", - "get_entity/": { - animal: "", - monster: "", - item: "", - player: "", - living: "", - }, - zone_entity: "", - "zone_entity/": { - animal: "", - monster: "", - item: "", - player: "", - living: "", - not_animal: "", - not_monster: "", - not_item: "", - not_player: "", - not_living: "", - }, - swap: "", - rotate: "", - rotate_reverse: "", - duplicate: "", - over: "", - tuck: "", - "2dup": "", - duplicate_n: "", - stack_len: "", - fisherman: "", - "fisherman/copy": "", - swizzle: "", - unique: "", - and: "", - or: "", - xor: "", - greater: "", - less: "", - greater_eq: "", - less_eq: "", - equals: "", - not_equals: "", - not: "", - bool_coerce: "", - "if": "", - add: "", - sub: "", - mul: "", - div: "", - abs: "", - pow: "", - floor: "", - ceil: "", - modulo: "", - construct_vec: "", - deconstruct_vec: "", - sin: "", - cos: "", - tan: "", - arcsin: "", - arccos: "", - arctan: "", - arctan2: "", - random: "", - logarithm: "", - coerce_axial: "", - read: "", - "read/entity": "", - "read/local": "", - write: "", - "write/entity": "", - "write/local": "", - readable: "", - "readable/entity": "", - writable: "", - "writable/entity": "", - "akashic/read": "", - "akashic/write": "", - print: "", - beep: "", - explode: "", - "explode/fire": "", - add_motion: "", - blink: "", break_block: "Rotura Bloque", - place_block: "", - "craft/cypher": "", - "craft/trinket": "", - "craft/artifact": "", "craft/battery": "Craftear frasco", - recharge: "", - erase: "", - create_water: "", - destroy_water: "", - ignite: "", - extinguish: "", - conjure_block: "", - conjure_light: "", - bonemeal: "", edify: "Edificar arbolito", - colorize: "", - cycle_variant: "", - "sentinel/": { - create: "", - "create/great": "", - destroy: "", - get_pos: "", - wayfind: "", - }, - "potion/": { - weakness: "", - levitation: "", - wither: "", - poison: "", - slowness: "", - regeneration: "", - night_vision: "", - absorption: "", - haste: "", - strength: "", - }, - flight: "", - "flight/range": "", - "flight/time": "", - "flight/can_fly": "", - lightning: "", - summon_rain: "", - dispel_rain: "", - create_lava: "", - "teleport/great": "", brainsweep: "Desollar mente", - eval: "", - "eval/cc": "", - for_each: "", - halt: "", - thanatos: "", - "interop/": { - "gravity/": { - get: "", - set: "", - }, - "pehkui/": { - get: "", - set: "", - }, - }, }, "book.hexcasting:": { - get_entity_height: "", - "get_entity/": { - animal: "", - monster: "", - item: "", - player: "", - living: "", - }, - zone_entity: "", "zone_entity/": { - animal: "", - monster: "", - item: "", - player: "", - living: "", not_animal: "Zone Dstl.: Non-Animal", not_monster: "Zone Dstl.: Non-Monster", not_item: "Zone Dstl.: Non-Item", @@ -591,7 +409,6 @@ arcsin: "Inverse Sine Prfn.", arccos: "Inverse Cosine Prfn.", arctan: "Inverse Tangent Prfn.", - arctan2: "", "const/vec/": { x: "Vector Rfln. +X/-X", y: "Vector Rfln. +Y/-Y", @@ -918,7 +735,6 @@ "4": "It's interesting to note that the $(italic)rotation/$ of a pattern doesn't seem to matter at all. These two patterns both perform an action called $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, for example.", "5": "A _Hex is cast by drawing (valid) actions in sequence. Each action might do one of a few things:$(li)Gather some information about the environment, leaving it on the top of the stack;$(li)manipulate the info gathered (e.g. adding two numbers); or$(li)perform some magical effect, like summoning lightning or an explosion. (These actions are called \"spells.\")$(p)When I start casting a _Hex, it creates an empty stack. Actions manipulate the top of that stack.", "6": "For example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ will create an iota representing $(italic)me/$, the caster, and add it to the top of the stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$ will take the iota at the top the stack, if it represents an entity, and transform it into an iota representing that entity's location.$(br2)So, drawing those patterns in that order would result in an iota on the stack representing my position.", - "7": "", "8": "$(li)Entities, like myself, chickens, and minecarts;$(li)Influences, peculiar types of iota that seem to represent abstract ideas;$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$; and$(li)A list of several of the above, gathered into a single iota.", "9": "Of course, there's no such thing as a free lunch. All spells, and certain other actions, require _media as payment.$(br2)The best I can figure, a _Hex is a little bit like a plan of action presented to Nature-- in this analogy, the _media is used to provide the arguments to back it up, so Nature will accept your plan and carry it out.", "10": "That aside, it doesn't seem like anyone has done much research on exactly how $(italic)much/$ any particular piece of $(l:items/amethyst)$(item)amethyst/$ is valued. The best I can tell, an $(l:items/amethyst)$(item)Amethyst Shard/$ is worth about five pieces of $(l:items/amethyst)$(item)Amethyst Dust/$, and a $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ is worth about ten.$(br2)Strangely enough, it seems like no other form of $(l:items/amethyst)$(item)amethyst/$ is suitable to be used in the casting of a _Hex. I suspect that whole blocks or crystals are too solid to be easily unraveled into _media.", From 3015519cd51f88bb6b0e0eafd89417518788b607 Mon Sep 17 00:00:00 2001 From: Futaba Sakura Date: Sun, 16 Aug 2026 19:01:27 +0000 Subject: [PATCH 12/50] =?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 chore(l10n): add Norwegian Bokmål translation chore(l10n): add Norwegian Bokmål translation Co-authored-by: Futaba Sakura Language: Norwegian Bokmål Progress: 0.4% (6 of 1386 strings) Progress: 5.4% (75 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/nb_NO/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/nb_NO/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/no_no.flatten.json5 | 95 +++++++++++++++++++ .../hexcasting/lang/no_no.flatten.json5 | 1 + 2 files changed, 96 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/no_no.flatten.json5 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 new file mode 100644 index 0000000000..fa3fef8494 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/no_no.flatten.json5 @@ -0,0 +1,95 @@ +{ + "item.hexcasting": { + book: "Hex Notisbok", + staff: { + oak: "Eikestav", + spruce: "Granstav", + birch: "Bjørkstav", + jungle: "Jungelstav", + acacia: "Akasiestav", + dark_oak: "Mørkeikestav", + crimson: "Karmosinstav", + warped: "Forvridd Stav", + mangrove: "Mangrovestav", + cherry: "Kirsebærstav", + bamboo: "Bambusstav", + edified: "Åpenbar Stav", + quenched: "Slokket Skår Stav", + mindsplice: "Sinnsjær Stav", + }, + amethyst_dust: "Ametyststøv", + charged_amethyst: "Ladet Ametyst", + quenched_allay_shard: "Skår av Slokket Hjelpeånd", + scroll_small: { + "": "Liten Rull", + of: "Liten Rull med %s", + empty: "Blank Liten Rull", + }, + scroll_medium: { + "": "Medium Rull", + of: "Medium Rull med %s", + empty: "Blank Medium Rull", + }, + scroll: { + "": "Stor Rull", + of: "Eldgammel rull med %s", + empty: "Blank Stor Rull", + }, + focus: { + "": "Fokus", + sealed: "Forseglet Fokus", + }, + lens: "Spådomslinse", + abacus: "Abakus", + jeweler_hammer: "Gullsmedens Hammer", + sub_sandwich: "Sub-Smørbrød", + dye_colorizer_: { + white: "Hvitt Pigment", + orange: "Oransje Pigment", + magenta: "Magenta Pigment", + light_blue: "Lyseblå Pigment", + yellow: "Gult Pigment", + lime: "Lime Pigment", + pink: "Rosa Pigment", + gray: "Grått Pigment", + light_gray: "Lysegrått Pigment", + cyan: "Cyan Pigment", + purple: "Lilla Pigment", + blue: "Blått Pigment", + brown: "Brunt Pigment", + green: "Grønt Pigment", + red: "Rødt Pigment", + black: "Svart Pigment", + }, + pride_colorizer_: { + agender: "Ukjønnet Pigment", + aroace: "Aroace Pigment", + aromantic: "Aromantisk Pigment", + asexual: "Aseksuell Pigment", + bisexual: "Bifili Pigment", + demiboy: "Demigutt Pigment", + demigirl: "Demijente Pigment", + gay: "Homofilt Pigment", + genderfluid: "Kjønnsfluiditet Pigment", + genderqueer: "Kjønnsskeivt Pigment", + intersex: "Intersex Pigment", + lesbian: "Lesbisk Pigment", + nonbinary: "Ikke-Binært Pigment", + pansexual: "Panfili Pigment", + plural: "Pluralitet Pigment", + transgender: "Transkjønnet Pigment", + }, + uuid_colorizer: "Sjeleglimmer Pigment", + default_colorizer: "Tomt Pigment", + ancient_colorizer: "Eldgammelt Pigment", + ancient_cypher: { + "": "Eldgammelt Cypher", + preset: "Eldgammelt Cypher: %s", + }, + thought_knot: "Husketråd", + spellbook: "Tryllebok", + trinket: "Tingel", + artifact: "Artefakt", + battery: "Flaske med Medie", + }, +} diff --git a/doc/resources/assets/hexcasting/lang/no_no.flatten.json5 b/doc/resources/assets/hexcasting/lang/no_no.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/no_no.flatten.json5 @@ -0,0 +1 @@ +{} From 3ed2de9497e0dfc84de7d182735bc6f9aaaa09a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Budny?= Date: Sun, 16 Aug 2026 19:01:27 +0000 Subject: [PATCH 13/50] chore(l10n): add Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): add Polish translation Co-authored-by: Stanisław Budny Language: Polish 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/pl/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 | 1 + doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 | 1 + 2 files changed, 2 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 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 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/pl_pl.flatten.json5 @@ -0,0 +1 @@ +{} diff --git a/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 b/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 @@ -0,0 +1 @@ +{} From a2b292ca34ae4a5064c6ec40eb73bf1780792526 Mon Sep 17 00:00:00 2001 From: KOCTEP Date: Sun, 16 Aug 2026 19:01:27 +0000 Subject: [PATCH 14/50] chore(l10n): update Russian translation Co-authored-by: KOCTEP Language: Russian Progress: 99.7% (1382 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../hexcasting/lang/ru_ru.flatten.json5 | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index 30947a7fba..510eccfbda 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -314,6 +314,7 @@ }, staticActiveSlates: { "@Tooltip": "Будут ли руны на активных скрижалях прорисованы без покачивания (улучшает производительность при большом количестве скрижалей)", + "": "Неподвижные зажжённые скрижали", }, disableInworldScrolling: { "": "Отключить Прокрутку в Мире", @@ -1226,6 +1227,8 @@ "3": "Ссылка Сдесь.", "4": "Например, если у меня есть вектор местоположения блока, а я хочу получить координаты блока над ним, мне потребуется увеличить Y компонент вектора координат на 1. Сделать это проще всего сложив исходный вектор с новым вектором (0, 1, 0). Если я захочу выбрать блок на два блока восточнее - надо будет добавить вектор (2, 0, 0). Эти новые вектора представляют собой $(o)сдвиг/$ в определённом направлении по координатной сетке.", "5": "Не стоит, правда, забывать что разделение векторов на координатные и сдвиговые существует лишь у нас в голове, каких-то фундаментальных отличий меж ними нет - векторы это всего лишь группы чисел. Вектор координат можно представить как сдвиг от неких нулевых координат, а вектор сдвига как местоположение объекта в новой системе координат с центром в точке исполнения заклинания.", + "11": "Возможно, страниц этой книги не достаточно чтобы вполне понять более продвинутые концепции связанные с векторами. Видеоматериал чуть ниже может послужить хорошим примером.", + "11.link_text": "3blue1brown", }, mishaps: { "1": "К сожалению, я не совершенное существо (пока что). Иногда я допускаю ошибки в своих исследованиях и сотворении $(#b38ef3)Заговоров/$; например, я неправильно черчу руны или иногда пытаюсь вызвать действие с неправильными йотами. И Природа обычно не смотрит на мои ошибки благосклонно-- вызывая то, что называется $(italic)провалом/$.", @@ -1259,6 +1262,8 @@ disabled: "Я попытался выполнить действие, которое было запрещено администратором сервера.$(br2)Вызывает черные искры.", "other.title": "Катастрофическая ошибка", other: "Ошибка в моде сотворила йоту недопустимого типа или иным образом привела к сбою заклинания. $(l:https://github.com/gamma-delta/HexMod/issues)Пожалуйста, откройте отчет об ошибке!/$$(br2)Вызывает черные искры.", + "needs_parens.title": "Отсутствует Интроспекция", + needs_parens: "Я попытался изобразить руну которая работает только во время $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)интроспекции/$ но забыл изобразить $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекцию/$. Вызывает оранжевые искры и добавляет руну которую я пытался изобразить в стэк в качестве йоты.", }, stack: { "1": "$(thing)стек/$, также известный как \"LIFO\" (last in first out), является концепцией, заимствованной из информатики. Вкратце, это коллекция вещей, спроектированная так, что вы можете взаимодействовать только с последней использованной вещью.$(br2)Представьте стопку тарелок, где новые тарелки добавляются сверху: если вы хотите взаимодействовать с тарелкой посередине стопки, вам придется удалить тарелки сверху, чтобы добраться до нее.", @@ -1454,6 +1459,7 @@ "raycast/entity": "Руна подобна $(l:patterns/basics#hexcasting:raycast)$(action)Объединению Луча/$, но вместо этого возвращает $(italic)сущность/$, на которую я смотрю. Стоит незначительное количество $(#74b3f2)мысли/$.", get_entity_height: "Преобразует сущность на стеке в её высоту.", get_entity_velocity: "Преобразует сущность на стеке в направление, в котором она движется, со скоростью этого движения в качестве величины этого вектора.", + get_media: "Добавляет количество _мысли, выраженное в единицах $(l:items/amethyst)$(item)Аметистовой пыли/$, доступное этому заговору.", }, numbers: { "1": "Досадно, что нет простого способа начертить числа. Вот метод, который природа предоставила нам.", @@ -1527,6 +1533,7 @@ tau: "Добавляет τ, радиальное представление полного круга, на стек.", pi: "Добавляет π, радиальное представление половины круга, на стек.", e: "Добавляет $(italic)e/$, основание натурального логарифма, на стек.", + phi: "Добавляет золотое сечение φ в стэк. Это соотношение между двумя значениями такое как (A+B)/A = A/B.", }, }, stackmanip: { @@ -1623,6 +1630,11 @@ "2": "Если йота, не являющаяся руной, присутствует в списке на исполнение руной $(l:patterns/meta#hexcasting:eval)$(action)гамбита Гермеса/$ (или любой другой мета-руной исполнения), то произойдёт оишбка. Но я могу избежать этого, используя руны, описаные ниже.$(br2)Прямо как с йотами рун, руны ниже позволяют \"экранировать\" $(o)любые$() йоты, заставляя их пропихнуться на стек при исполнении вместо ошибки.", "3": "Эта техника пригодится, если я захочу сослаться на специфичную йоту в своём $(#b38ef3)Заговоре/$, вроде сложного вектора или ссылки на сущность, без нужды создавать их с нуля при каждом исполнении.$(br2)Нужно не забыть о том, как именно я внесу такую йоту в список рун для исполнения. Простейшим способом будет сначала начертить \"заглушку\" при создании списка, а потом заменить её на нужную йоту с помощью руны $(l:patterns/lists#hexcasting:replace)$(action)Возвышения Хирурга/$.", }, + runtime_escape: { + "1": "Чтобы использовать$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, Нужно изобразить её, а затем изобразить произвольную руну. Вторая руна будет добавлена в стэк как йота.", + "2": "Называя это \"Экранирование\" мы облегчаем понимание людям знакомым с информатикой.(br2)Классическое применение - скопировать руну на $(l:items/scroll)$(item)Свиток/$ или $(l:items/slate)$(item)Скрижаль/$ с помощью $(l:patterns/readwrite#hexcasting:write)$(action)Гамбита Писаря/$, и красиво повесить на стенку.", + }, + escape: "То же что и $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, но действует даже будучи изображённой между $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспективой/$. Может \"экранировать\" другие руны которые функционируют между $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспективой/$, добавляет их в стэк избегая другие эффекты.", }, readwrite: { "1": "Этот раздел касается хранения $(thing)йот/$ в более постоянной среде. Почти любую йоту можно сохранить на подходящем предмете, вроде $(l:items/focus)$(item)Талисмана/$ или $(l:items/spellbook)$(item)Книги заклинаний/$), и позже снова прочитать. Некоторые предметы, такие как $(l:items/abacus)$(item)Счеты/$, могут быть только прочитаны.$(br2)Йоты обычно читаются и записываются с второстепенной руки, но также возможно читать и писать с помощью предмета, когда он находится на земле как предмет-сущность или в рамке.", @@ -1869,6 +1881,22 @@ type_equals: "Сравнивает данные йоты и выдает, одного ли они типа.", type_not_equals: "Сравнивает данные йоты и выдает, разных ли они типов.", compare_entity: "Сравнивает данных сущностей и выдает, одного ли они типа.", + "compare_item/": { + lenient: "Сравнивает предметы которыми являются или которые держат предоставленные сущности и добавляет логический результат в стэк. Два $(l:items/focus)$(item)Талисмана/$ всегда считаются одинаковыми.", + strict: "То же что и Объединение Сортировщика, но добавляет истину только если предметы полностью идентичны. Два $(l:items/focus)$(item)Талисмана/$ будут считаться идентичными только если содержат одну и ту же йоту и выглядят одинаково.", + remarks: "То, как природа интерпретирует сущность в контексте $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Объед. Сортировщика/$ или $(l:patterns/types#hexcasting:compare_item/strict)$(action)Объед Кучки/$, зависит от её типа:$(li)Сущности-предметы проходят как предметы которые они олицетворяют$(li)Рамки проходят как предметы помещенные в них и вызывают провал если предмета нет$(li)Игроки проходят как предмет удерживаемый в руке на данный момент, приоритизируя предмет в ведущей руке", + }, + "compare_block/": { + remarks: "Похоже природа не сильно всматривается в идентичность блоков по отношению друг к другу. К примеру выставленные скрижали будут считаться идентичными даже с разными высеченными рунами, достаточно им смотреть в одном направлении и быть в одинаковой степени затопленными. То же самое с сундуками, они считаются одинаковыми если выглядят одинаково, даже если их наполнение отличается.", + strict: "Сравнивает блоки на которые указывают предоставленные векторы и добавляет логический результат в стэк. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Лестницы созидания/$ будут считаться одинаковыми только если они в точности повторяют друг друга.", + lenient: "Сравнивает типы блоков на которые указывают предоставленные векторы и добавляет логический результат в стэк. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Лестницы созидания/$ будут считаться одинаковыми независимо от формы и затопленности.", + }, + }, + advanced_escaping: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$ очень полезны, но в процессе создания сложных _Hexes могут понадобиться более продвинутые техники. $(br2)Этот раздел рассказывает об этих техниках: $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ позволяет мне вставить йоты прямо в формирующийся список, а (l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)Медитация/$ и $(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)Recollection/$ позволяют начинать и заканчивать процесс создания вложенных списков с любой глубиной.", + read_into_parens: "Работает только во время $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекции/$. Считывает йоту с другой руки и добавляет её в формирующийся список. Если йота не является руной, придется принять особые $(l:patterns/patterns_as_iotas#iota_embedding)$(action)меры/$ чтобы избежать провала при исполнении списка.", + open_n_parens: "Удаляет число из стэка, и действует так же, как если бы я изобразил такое количество $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекций/$. Ведет себя как обычная руна во время $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)интроспекции/$, поэтому для ее вложения придется $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)изощриться/$ с изображением дополнительных $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектив/$.", + close_all_parens: "Работает так же как $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$, но закрывает $(italic)все открытые $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекции/$ за раз. Количество закрытых слоев, а также список сохраненных рун добавляются в стэк.", }, }, "iota.hexcasting:": { From 1173ddcbe3f5ef05d8485d362e2e65db445b71b9 Mon Sep 17 00:00:00 2001 From: DarkThunderer Date: Sun, 16 Aug 2026 19:01:28 +0000 Subject: [PATCH 15/50] chore(l10n): update Russian translation Co-authored-by: DarkThunderer Language: Russian Progress: 99.7% (1382 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index 510eccfbda..41226344fd 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -1229,6 +1229,10 @@ "5": "Не стоит, правда, забывать что разделение векторов на координатные и сдвиговые существует лишь у нас в голове, каких-то фундаментальных отличий меж ними нет - векторы это всего лишь группы чисел. Вектор координат можно представить как сдвиг от неких нулевых координат, а вектор сдвига как местоположение объекта в новой системе координат с центром в точке исполнения заклинания.", "11": "Возможно, страниц этой книги не достаточно чтобы вполне понять более продвинутые концепции связанные с векторами. Видеоматериал чуть ниже может послужить хорошим примером.", "11.link_text": "3blue1brown", + "6": "Любой вектор можно описать с помощью его $(o)величины/$ (длины) и $(o)направления/$. Проще всего их представить при рассмотрении векторов сдвига.$(br2)Представим что я начал двигаться по вектору сдвига от какой-то стартовой точки. В конце моего пути расстояние от начальной до конечной точки будет равно длине вектора, а направление движения - направлению вектора.", + "7": "Вектора можно изменять множеством способов. Во первых, как я уже писал ранее, их можно сложить, складывая X, Y и Z компоненты. Во вторых, можно вычесть один вектор из второго. Такое вычитание очень важно, так как вычитание одного координатного вектора из другого позволяет получить вектор сдвига (поз А - поз Б = Б->А).$(br2)С умножением и делением векторов всё не так просто, об этих операциях лучше прочитать $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)здесь/$ и $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)вот здесь/$.", + "8": "Гораздо чаще приходится умножать или делить вектора на какое-то конкретное число для изменения их величины. При такой операции все 3 компоненты вектора умножаются или делятся на одну и ту же величину. Если используется положительное число - вектор сохранит своё направление, но изменит длину. Если же вектор умножается на отрицательное число - его направление изменится на прямо противоположное.", + "9": "Если разделить вектор на собственную величину - получится единичный вектор (также известный как орт) с длиной равной 1. Такой вектор бывает полезен для операций где величина вектора не важна. Также такой вектор можно умножить на какое-то число для получения вектора со строго заданной длиной.$(br2)Большинство знаков вычисляющих направление (например $(l:patterns/basics#hexcasting:get_entity_look)Преображение Алидады/$) помещают в Стек именно единичный вектор.", }, mishaps: { "1": "К сожалению, я не совершенное существо (пока что). Иногда я допускаю ошибки в своих исследованиях и сотворении $(#b38ef3)Заговоров/$; например, я неправильно черчу руны или иногда пытаюсь вызвать действие с неправильными йотами. И Природа обычно не смотрит на мои ошибки благосклонно-- вызывая то, что называется $(italic)провалом/$.", From aa91e0f717fe66421e8f775a3a0083d5da74813f Mon Sep 17 00:00:00 2001 From: Lithyaku Date: Sun, 16 Aug 2026 19:01:28 +0000 Subject: [PATCH 16/50] chore(l10n): update French translation chore(l10n): update French translation Co-authored-by: Lithyaku Language: French Progress: 12.0% (167 of 1386 strings) Progress: 5.0% (70 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 | 129 ++++++++++++++++-- 1 file changed, 121 insertions(+), 8 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 41bf1de838..46e3fd7826 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 @@ -17,19 +17,19 @@ amethyst_dust: "Poussière d'améthyste", charged_amethyst: "Améthyste chargée", scroll_small: { - "": "Petit rouleau", - empty: "Petit rouleau vide", + "": "Petit Parchemin", + empty: "Petit Parchemin Vierge", }, scroll_medium: { - "": "Moyen rouleau", - empty: "Moyen rouleau vide", + "": "Moyen Parchemin", + empty: "Moyen Parchemin Vierge", }, scroll: { - "": "Grand rouleau", - of: "Ancien rouleau de %s", - empty: "Grand rouleau vide", + "": "Grand Parchemin", + of: "Parchemin Antique de %s", + empty: "Grand Parchemin Vierge", }, - thought_knot: "Nœud de idée", + thought_knot: "Noeud de Pensée", spellbook: "Grimoire", trinket: "Babiole", battery: "Fiole de média", @@ -63,14 +63,127 @@ nonbinary: "Pigment non binaire", pansexual: "Pigment pansexuel", transgender: "Pigment transgenre", + aroace: "Pigment Aroace", + demiboy: "Pigment Demiboy", + demigirl: "Pigment Demigirl", + gay: "Pigment Gay", + genderfluid: "Pigment Genderfluid", + genderqueer: "Pigment Genderqueer", + intersex: "Pigment Intersexe", + plural: "Pigment Pluriel", }, ancient_colorizer: "Ancien pigment", creative_unlocker: { "": "Le cube de média", for_emphasis: "MÉDIA INFINI", + tooltip: "À consommer pour débloquer toutes les connaissances sur %s.", + mod_name: "Hexcasting", }, + focus: { + "": "Focus", + sealed: "Focus Scellé", + }, + artifact: "Artéfact", + lore_fragment: { + "": "Fragment d’Histoire", + all: "Il semblerait que j'ai découvert toute l'histoire de ce monde.", + }, + lens: "Lentille Divinatoire", }, "entity.hexcasting": { wall_scroll: "Rouleau suspendu", }, + "block.hexcasting": { + conjured_light: "Lumière Conjurée", + conjured_block: "Block Conjuré", + akashic_: { + record: "Archive Akashique", + bookshelf: "Bibliothèque Akashique", + connector: "Ligature Akashique", + }, + slate: { + "": "Ardoise", + blank: "Ardoise Vierge", + written: "Ardoise à Motif", + }, + slate_: { + block: "Block d'Ardoise", + tiles: "Carreaux d'Ardoise", + bricks: "Briques d'Ardoise", + bricks_small: "Petites Briques d'Ardoise", + pillar: "Pilier d'Ardoise", + }, + amethyst_: { + dust_block: "Block de poudre d'Améthyste", + tiles: "Carreaux d'Améthyste", + bricks: "Briques d'Améthyste", + bricks_small: "Petites Briques d'Améthyste", + pillar: "Pilier d'Améthyste", + }, + slate_amethyst_: { + tiles: "Carreaux d'Ardoise et d'Améthyste", + bricks: "Briques d'Ardoise et d'Améthyste", + bricks_small: "Petites Briques d'Ardoise et d'Améthyste", + pillar: "Pilier d'Ardoise et d'Améthyste", + }, + scroll_paper: "Papier de Parchemin", + ancient_scroll_paper: "Papier de Parchemin Antique", + scroll_paper_lantern: "Lanterne en Papier", + ancient_scroll_paper_lantern: "Lanterne en Papier Antique", + amethyst_sconce: "Applique Murale d'Améthyste", + }, + "effect.hexcasting": { + enlarge_grid: "Clarté", + shrink_grid: "Embrumement", + }, + "item.minecraft.potion.effect": { + enlarge_grid: "Potion de Clarté", + enlarge_grid_long: "Potion de Clarté", + enlarge_grid_strong: "Potion de Clarté", + shrink_grid: "Potion d'Embrumement", + shrink_grid_long: "Potion d'Embrumement", + shrink_grid_strong: "Potion d'Embrumement", + }, + "item.minecraft.splash_potion.effect": { + enlarge_grid: "Potion de Clarté Jetable", + enlarge_grid_long: "Potion de Clarté Jetable", + enlarge_grid_strong: "Potion de Clarté Jetable", + shrink_grid: "Potion d'Embrumement Jetable", + shrink_grid_long: "Potion d'Embrumement Jetable", + shrink_grid_strong: "Potion d'Embrumement Jetable", + }, + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "Potion de Clarté Persistante", + enlarge_grid_long: "Potion de Clarté Persistante", + enlarge_grid_strong: "Potion de Clarté Persistante", + shrink_grid: "Potion d'Embrumement Persistante", + shrink_grid_long: "Potion d'Embrumement Persistante", + shrink_grid_strong: "Potion d'Embrumement Persistante", + }, + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "Flèche de Clarté", + enlarge_grid_long: "Flèche de Clarté", + enlarge_grid_strong: "Flèche de Clarté", + shrink_grid: "Flèche d'Embrumement", + shrink_grid_long: "Flèche d'Embrumement", + shrink_grid_strong: "Flèche d'Embrumement", + }, + "itemGroup.hexcasting": { + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Parchemins)", + }, + "gui.hexcasting": { + spellcasting: "Grille de Hex", + }, + "category.hexcasting": { + binds: "Hex Casting", + }, + "key.hexcasting": { + spellbook_prev: "Page Précédente du Grimoire", + spellbook_next: "Page Suivante du Grimoire", + }, + "tag.hexcasting": { + staves: "Bâtons de Hex", + phial_base: "Fioles Vides", + }, } From 355990f6aedae51589f017433d26d3498bca277f Mon Sep 17 00:00:00 2001 From: ManicTv Date: Sun, 16 Aug 2026 19:01:28 +0000 Subject: [PATCH 17/50] chore(l10n): update Polish translation Co-authored-by: ManicTv Language: Polish Progress: 7.2% (100 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translation: Hex Casting/Common --- .../hexcasting/lang/pl_pl.flatten.json5 | 139 +++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) 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 0967ef424b..641d276d61 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 @@ -1 +1,138 @@ -{} +{ + "item.hexcasting": { + staff: { + oak: "Dębowy Kostur", + spruce: "Świerkowy Kostur", + birch: "Brzozowy Kostur", + jungle: "Tropikalny Kostur", + acacia: "Akacjowy Kostur", + dark_oak: "Ciemny Dębowy Kostur", + crimson: "Szkarłatny Kostur", + warped: "Spaczony Kostur", + mangrove: "Namorzynowy Kostur", + cherry: "Wiśniowy Kostur", + bamboo: "Bambusowy Kostur", + edified: "Oświecony Kostur", + }, + amethyst_dust: "Ametystowy Pył", + charged_amethyst: "Naładowany Ametyst", + quenched_allay_shard: "Odłamek Wygaszonego Otuszka", + scroll_small: { + "": "Mały Zwój", + empty: "Mały Pusty Zwój", + }, + scroll_medium: { + "": "Średni Zwój", + empty: "Średni Pusty Zwój", + }, + scroll: { + "": "Duży Zwój", + of: "Starożytny Zwój %s", + empty: "Duży Pusty Zwój", + }, + focus: { + "": "Amulet", + sealed: "Zapieczętowany Amulet", + }, + ancient_cypher: { + "": "Starożytny Drobiazg", + preset: "Starożytny Drobiazg: %s", + }, + thought_knot: "Myślo-Wiąz", + spellbook: "Księga Zaklęć", + cypher: "Drobiazg", + trinket: "Gadżet", + artifact: "Artefakt", + battery: "Fiolka Przepływu", + lens: "Ametystowa Soczewka", + abacus: "Liczydło", + jeweler_hammer: "Młotek Jubilerski", + dye_colorizer_: { + white: "Biały Pigment", + orange: "Pomarańczowy Pigment", + magenta: "Magentowy Pigment", + light_blue: "Jasno-Niebieski Pigment", + yellow: "Żółty Pigment", + lime: "Limonkowy Pigment", + pink: "Różowy Pigment", + gray: "Szary Pigment", + light_gray: "Jasno-Szary Pigment", + cyan: "Cyjanowy Pigment", + purple: "Fioletowy Pigment", + blue: "Niebieski Pigment", + brown: "Brązowy Pigment", + green: "Zielony Pigment", + red: "Czerwony Pigment", + black: "Czarny", + }, + pride_colorizer_: { + agender: "Pigment Agender", + aroace: "Pigment Aroace", + aromantic: "Pigment Aromantyczny", + asexual: "Pigment Aseksualny", + bisexual: "Pigment Biseksualny", + demiboy: "Pigment Demiboy", + demigirl: "Pigment Demigirl", + gay: "Pigment Gej", + genderfluid: "Pigment Genderfluid", + genderqueer: "Pigment Genderqueer", + intersex: "Pigment Interpłci", + lesbian: "Pigment Lesbijski", + nonbinary: "Pigment Niebinarny", + pansexual: "Pigment Panseksualny", + plural: "Pigment Plural", + transgender: "Pigment Transpłci", + }, + uuid_colorizer: "Pigment Błysku Duszy", + default_colorizer: "Nijaki Pigment", + ancient_colorizer: "Starożytny Pigment", + creative_unlocker: { + "": "Kostka Przepływu", + for_emphasis: "NIESKOŃCZONY PRZEPŁYW", + tooltip: "Spożyj, aby otrzymać całą %s wiedzę.", + mod_name: "Hexcasting", + }, + lore_fragment: { + "": "Skrawek Wiedzy", + all: "Wygląda na to, że posiadasz całą wiedzę oferowaną przez ten świat.", + }, + }, + "entity.hexcasting": { + wall_scroll: "Wiszący Zwój", + }, + "block.hexcasting": { + conjured_light: "Wyczarowane Światło", + conjured_block: "Wyczarowany Blok", + directrix: { + empty: "Pusta Zwrotnica", + redstone: "Zwrotnica Kamieniarza", + boolean: "Zwrotnica Pasterza", + }, + impetus: { + empty: "Pusta Wyrzutnia", + rightclick: "Wyrzutnia Płatnerza", + look: "Wyrzutnia Łuczarza", + redstone: "Wyrzutnia Kapłana", + }, + akashic_: { + record: "Kronika Akashy", + bookshelf: "Półka Akashy", + connector: "Łącznik Akashy", + }, + slate: { + "": "Płyta", + blank: "Czysta Płyta", + written: "Wygrawerowana Płyta", + }, + slate_: { + block: "Blok Płyty", + tiles: "Płytowe Schodki", + bricks: "Płytowe Cegły", + bricks_small: "Drobne Płytowe Cegły", + pillar: "Płytowy Filar", + }, + amethyst_: { + dust_block: "Blok Ametystowego Pyłu", + }, + }, +} From 006953b2dc8415a28053eefd213220c53910d195 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stanis=C5=82aw=20Budny?= Date: Sun, 16 Aug 2026 19:01:28 +0000 Subject: [PATCH 18/50] chore(l10n): update Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): update Polish translation Co-authored-by: Stanisław Budny Language: Polish Progress: 7.2% (100 of 1386 strings) Progress: 8.0% (112 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translation: Hex Casting/Common --- .../hexcasting/lang/pl_pl.flatten.json5 | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) 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 641d276d61..37ec444443 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 @@ -13,6 +13,8 @@ cherry: "Wiśniowy Kostur", bamboo: "Bambusowy Kostur", edified: "Oświecony Kostur", + quenched: "Stłamszony kostur", + mindsplice: "Spleciony kostur", }, amethyst_dust: "Ametystowy Pył", charged_amethyst: "Naładowany Ametyst", @@ -27,21 +29,21 @@ }, scroll: { "": "Duży Zwój", - of: "Starożytny Zwój %s", + of: "Starożytny Zwój - %s", empty: "Duży Pusty Zwój", }, focus: { - "": "Amulet", - sealed: "Zapieczętowany Amulet", + "": "Talizman", + sealed: "Zapieczętowany Talizman", }, ancient_cypher: { - "": "Starożytny Drobiazg", - preset: "Starożytny Drobiazg: %s", + "": "Starożytne Cacko", + preset: "Starożytne Cacko: %s", }, - thought_knot: "Myślo-Wiąz", + thought_knot: "Kłębek Myśli", spellbook: "Księga Zaklęć", - cypher: "Drobiazg", - trinket: "Gadżet", + cypher: "Cacko", + trinket: "Bibelot", artifact: "Artefakt", battery: "Fiolka Przepływu", lens: "Ametystowa Soczewka", @@ -63,17 +65,17 @@ brown: "Brązowy Pigment", green: "Zielony Pigment", red: "Czerwony Pigment", - black: "Czarny", + black: "Czarny Pigment", }, pride_colorizer_: { - agender: "Pigment Agender", + agender: "Pigment Apłciowy", aroace: "Pigment Aroace", aromantic: "Pigment Aromantyczny", asexual: "Pigment Aseksualny", bisexual: "Pigment Biseksualny", demiboy: "Pigment Demiboy", demigirl: "Pigment Demigirl", - gay: "Pigment Gej", + gay: "Pigment Gejowski", genderfluid: "Pigment Genderfluid", genderqueer: "Pigment Genderqueer", intersex: "Pigment Interpłci", @@ -94,8 +96,9 @@ }, lore_fragment: { "": "Skrawek Wiedzy", - all: "Wygląda na to, że posiadasz całą wiedzę oferowaną przez ten świat.", + all: "Wygląda na to, że posiadam całą wiedzę oferowaną przez ten świat.", }, + sub_sandwich: "Kanapka z Wędliną i Ametystem", }, "entity.hexcasting": { wall_scroll: "Wiszący Zwój", @@ -115,13 +118,13 @@ redstone: "Wyrzutnia Kapłana", }, akashic_: { - record: "Kronika Akashy", - bookshelf: "Półka Akashy", - connector: "Łącznik Akashy", + record: "Kronika Akaszy", + bookshelf: "Półka Akaszy", + connector: "Łącznik Akaszy", }, slate: { "": "Płyta", - blank: "Czysta Płyta", + blank: "Gładka Płyta", written: "Wygrawerowana Płyta", }, slate_: { @@ -134,5 +137,12 @@ amethyst_: { dust_block: "Blok Ametystowego Pyłu", }, + slate_amethyst_: { + bricks_small: "Drobne Ametystowo-Płytowe Cegły", + pillar: "Ametystowo-Płytowy Filar", + }, + scroll_paper_lantern: "Papierowy Lampion", + ancient_scroll_paper_lantern: "Starożytny Papierowy Lampion", + amethyst_sconce: "Ametystowy Znicz", }, } From 34566d7adc512c302b800ac021723ae52b033de9 Mon Sep 17 00:00:00 2001 From: "[object Object]" Date: Sun, 16 Aug 2026 19:01:29 +0000 Subject: [PATCH 19/50] chore(l10n): add English (Pirate) translation chore(l10n): add English (Pirate) translation Co-authored-by: [object Object] Language: English (Pirate) 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/en@pirate/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../main/resources/assets/hexcasting/lang/en_pt.flatten.json5 | 1 + doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 | 1 + 2 files changed, 2 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 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 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/en_pt.flatten.json5 @@ -0,0 +1 @@ +{} diff --git a/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 b/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 @@ -0,0 +1 @@ +{} From ce5bbd486c4c935158311956b58447e7734d7dc5 Mon Sep 17 00:00:00 2001 From: KOCTEP Date: Sun, 16 Aug 2026 19:01:29 +0000 Subject: [PATCH 20/50] chore(l10n): update Russian translation chore(l10n): update Russian translation Co-authored-by: KOCTEP Language: Russian Progress: 100.0% (23 of 23 strings) Progress: 99.8% (1384 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/ru/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../assets/hexcasting/lang/ru_ru.flatten.json5 | 12 +++++++----- .../assets/hexcasting/lang/ru_ru.flatten.json5 | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index 41226344fd..e4d784c3e5 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -610,7 +610,7 @@ thoth: "Тот стрекочит", }, }, - ambiance: "Hex grid hums", + ambiance: "Магическая разметка гудит", "staff.reset": "Сброс заклинания", abacus: { "": "Счеты щелкают", @@ -1222,9 +1222,9 @@ "15": "Наконец, кажется, что заклинания имеют максимальную дальность воздействия, около 32 блоков от моего положения. Попытка воздействовать на что-либо за пределами этого приведет к провалу заклинания.$(br2)Несмотря на это, если у меня есть истинное имя игрока, я могу воздействовать на него откуда угодно. Однако это применимо только к прямому воздействию на них; я не могу использовать это для воздействия на мир вокруг них, если они за пределами моего диапазона.$(br)Мне следует быть крайне осторожным и не давать никому свое истинное имя. В то время как дружелюбные Рунные маги могут использовать их с большим эффектом и пользой, мне страшно думать, что мог бы сделать кто-то злонамеренный с этим...", }, vectors: { - "1": "Похоже, мне придется быть искусным с векторами, если я собираюсь добиться успеха в своих исследованиях. Я собрал здесь некоторые ресурсы по векторам, если обнаружу, что не знаю, как с ними работать.$(br2)Прежде всего, просветительское видео по этой теме.", - "2": "Кроме того, кажется, что маги, которые манипулировали $(thing)Псиэнергией/$ (так называемые \"мастера заклинаний\"), несмотря на их плохой вкус в названиях, имели некоторые довольно эффективные уроки по векторам для своих последователей. Я позволил себе разместить ссылку на один из их текстов на следующей странице.$(br2)Похоже, что они использовали другой язык для своего колдовства:$(li)\"Spell Piece\" было их название для действия;$(li)\"Trick\" было их название для заклинания; и$(li)\"Operator\" было их название для не-заклинательного действия.", - "3": "Ссылка Сдесь.", + "1": "Похоже, мне придется быть искусным с векторами, если я собираюсь добиться успеха в своих исследованиях. Вектор это набор из трех чисел который может олицетворять множество вещей, обычно либо позицию в мире или сдвиг от одной позиции к другой, или же направление в пространстве. На следующих страницах, я расскажу в общих чертах, о том как работают векторы и как их использовать.", + "2": "Все векторы которые нужны $(hex)Заклинателю/$ - Трехмерные, Так как мир в котором мы живем имеет три измерения. В каждом векторе есть компонент X, компонент Y, компонент Z, именно в таком порядке, они отвечают за соответствующие 3 координатные оси мира: Ось X идет от запада к востоку, ось Y идет снизу вверх, а ось Z идет от севера к югу.", + "3": "Простейшая функция вектора - указывать на $(o)позицию/$, определенную точку в пространстве: это может быть расположение блока или сущности или, может быть, свободное пространство на которое вы хотите нацелить заклинание.", "4": "Например, если у меня есть вектор местоположения блока, а я хочу получить координаты блока над ним, мне потребуется увеличить Y компонент вектора координат на 1. Сделать это проще всего сложив исходный вектор с новым вектором (0, 1, 0). Если я захочу выбрать блок на два блока восточнее - надо будет добавить вектор (2, 0, 0). Эти новые вектора представляют собой $(o)сдвиг/$ в определённом направлении по координатной сетке.", "5": "Не стоит, правда, забывать что разделение векторов на координатные и сдвиговые существует лишь у нас в голове, каких-то фундаментальных отличий меж ними нет - векторы это всего лишь группы чисел. Вектор координат можно представить как сдвиг от неких нулевых координат, а вектор сдвига как местоположение объекта в новой системе координат с центром в точке исполнения заклинания.", "11": "Возможно, страниц этой книги не достаточно чтобы вполне понять более продвинутые концепции связанные с векторами. Видеоматериал чуть ниже может послужить хорошим примером.", @@ -1233,6 +1233,7 @@ "7": "Вектора можно изменять множеством способов. Во первых, как я уже писал ранее, их можно сложить, складывая X, Y и Z компоненты. Во вторых, можно вычесть один вектор из второго. Такое вычитание очень важно, так как вычитание одного координатного вектора из другого позволяет получить вектор сдвига (поз А - поз Б = Б->А).$(br2)С умножением и делением векторов всё не так просто, об этих операциях лучше прочитать $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)здесь/$ и $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)вот здесь/$.", "8": "Гораздо чаще приходится умножать или делить вектора на какое-то конкретное число для изменения их величины. При такой операции все 3 компоненты вектора умножаются или делятся на одну и ту же величину. Если используется положительное число - вектор сохранит своё направление, но изменит длину. Если же вектор умножается на отрицательное число - его направление изменится на прямо противоположное.", "9": "Если разделить вектор на собственную величину - получится единичный вектор (также известный как орт) с длиной равной 1. Такой вектор бывает полезен для операций где величина вектора не важна. Также такой вектор можно умножить на какое-то число для получения вектора со строго заданной длиной.$(br2)Большинство знаков вычисляющих направление (например $(l:patterns/basics#hexcasting:get_entity_look)Преображение Алидады/$) помещают в Стек именно единичный вектор.", + "10": "Все упомянутые операции и многие другие можно совершить используя руны из $(l:patterns/math)Математической/$ Главы.$(br2) Векторы можно создать собирая данные о сущностях с помощью $(l:patterns/basics)Базовых рун/$, Используя $(l:patterns/consts)Константы/$ для создания единичных векторов дающих базовые направления, или же просто собрав три числа в вектор $(l:patterns/math#hexcasting:construct_vec)Векторным Возвышением/$.", }, mishaps: { "1": "К сожалению, я не совершенное существо (пока что). Иногда я допускаю ошибки в своих исследованиях и сотворении $(#b38ef3)Заговоров/$; например, я неправильно черчу руны или иногда пытаюсь вызвать действие с неправильными йотами. И Природа обычно не смотрит на мои ошибки благосклонно-- вызывая то, что называется $(italic)провалом/$.", @@ -1817,7 +1818,7 @@ "2": "Я проснулась ночью по нужде. Луна была скрыта за облаками, и, признаюсь честно, я потерялась в тропинках леса и не смогла найти дорогу обратно. Опасаясь монстров ночи, я решила отправитьсяв деревню, чтобы найти там ночлег. Там, хотя бы, было бы безопасно.", "3": "Отыскать деревню было не сложно, хотя она и не издавала звуков. Даже в такую позднюю ночь я ожидала, что гостиница если и не будет греметь, то будет издавать хоть какие-то звуки. Но, подглядев одним глазком в дверь гостинницы, я никого не увидела.$(br2)Я постучала в дверь одного из жилых домов, не получив ответа. Следующие два дома тоже были пусты.", "4": "Мой пульс начал учащаться, и я решила войти в следующий дом. Я подумала, что люди внутри войдут в моё положение. Как минимум, я хотела услышать чужой голос для успокоения, даже если мне бы не позволили остаться на ночь.$(br2)Дом был очень мал, интерьер составляли лишь стол картографа и кровать. Я увидела кого-то в кровати, и попыталась себя успокоить, мол, все в деревне просто крепко спят. Я начала выходить из дома.", - "5": "Но тут облака сдвинулись, и лунный свет упал на на владельца кровати.$(br2)Я закричала, и его глаза открылись. Оно было ... определённо, отвратительно далеко от человека. Будто бы какая-то жуткая деградация человека, его лоб был слишком огромен, тело коренастое и твёрдое. По крайне мере я думаю, это его можно назвать \"оно\"; существо передо мной явно было не так сообразительно, как человек, несмотря на внешнюю схожесть.", + "5": "Но тут облака сдвинулись, и лунный свет упал на владельца кровати.$(br2)Я закричала, и его глаза открылись. Оно было ... определённо, отвратительно далеко от человека. Будто бы какая-то жуткая деградация человека, его лоб был слишком огромен, тело коренастое и твёрдое. По крайне мере я думаю, это его можно назвать \"оно\"; существо передо мной явно было не так сообразительно, как человек, несмотря на внешнюю схожесть.", "6": "Его глаза пялились на меня-- ох, эти глаза были отвратны, пустой и безрассудный взгляд, прямо как у барана! Оно открыло свой рот, но лишь жалкая попытка речи вышла из него - содрагающийся, гортанный стон.", "7": "Я убежала. В свету раскрытой луны я уловила тени других обитателей в окнах, и все они были искажены и упрощены как и первая $(italic)штука/$, которую я видела. Я бежала в тьму леса, подальше от этих жутких, жутких животных глаз на этих уродливых лицах.$(br2)Лагерь отыскать теперь было проще, в свете луны. Никто не заметил моего длительного отсутствия, и слава богу. Я заползла обратно в свой спальный мешок и попыталась сделать всё что было в моих силах, чтобы забыть об этой ночи.", "8": "Как ты можешь понять из этого письма, я не справилась. Это искажённое видение всё ещё посещает меня в кошмарах. Я трясусь от мысли, что раньше они могли быть людьми.$(br2)Когда мы вернулись в Библиотеку, я показала украденный осколок кристалла Аманите. Она подтвердила мои догадки: это точно кристалл мысли. Что же гигантская жеода, забитая такими кристаллами, делала под землёй - она не знала.", @@ -1889,6 +1890,7 @@ lenient: "Сравнивает предметы которыми являются или которые держат предоставленные сущности и добавляет логический результат в стэк. Два $(l:items/focus)$(item)Талисмана/$ всегда считаются одинаковыми.", strict: "То же что и Объединение Сортировщика, но добавляет истину только если предметы полностью идентичны. Два $(l:items/focus)$(item)Талисмана/$ будут считаться идентичными только если содержат одну и ту же йоту и выглядят одинаково.", remarks: "То, как природа интерпретирует сущность в контексте $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Объед. Сортировщика/$ или $(l:patterns/types#hexcasting:compare_item/strict)$(action)Объед Кучки/$, зависит от её типа:$(li)Сущности-предметы проходят как предметы которые они олицетворяют$(li)Рамки проходят как предметы помещенные в них и вызывают провал если предмета нет$(li)Игроки проходят как предмет удерживаемый в руке на данный момент, приоритизируя предмет в ведущей руке", + "remarks.title": "О носителях предметов", }, "compare_block/": { remarks: "Похоже природа не сильно всматривается в идентичность блоков по отношению друг к другу. К примеру выставленные скрижали будут считаться идентичными даже с разными высеченными рунами, достаточно им смотреть в одном направлении и быть в одинаковой степени затопленными. То же самое с сундуками, они считаются одинаковыми если выглядят одинаково, даже если их наполнение отличается.", diff --git a/doc/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/doc/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index ed125fda63..9170df56cd 100644 --- a/doc/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -2,7 +2,7 @@ hexdoc: { hexcasting: { title: "Hex Book", - description: "Всё о Hex - в одном месте", + description: "Всё о Hex - в одном месте.", }, renderer: { renders: "Рендеры", From 721f2992c29938b84142afd934959899e6637514 Mon Sep 17 00:00:00 2001 From: Sixela963 Date: Sun, 16 Aug 2026 19:01:29 +0000 Subject: [PATCH 21/50] chore(l10n): update French translation Co-authored-by: Sixela963 Language: French Progress: 12.0% (167 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 | 36 +++++++++++++++---- 1 file changed, 30 insertions(+), 6 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 46e3fd7826..aa66b97875 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 @@ -1,7 +1,7 @@ { "item.hexcasting": { staff: { - oak: "Bâton en chêne", + oak: "Sceptre en chêne", spruce: "Sceptre en sapin", birch: "Sceptre en bouleau", jungle: "Sceptre en acajou", @@ -9,10 +9,12 @@ dark_oak: "Sceptre en chêne noir", crimson: "Sceptre carmin", warped: "Sceptre biscornu", - mangrove: "Bâton en palétuvier", - cherry: "Bâton en cerisier", - bamboo: "Bâton en bambou", - edified: "Bâton édifiant", + mangrove: "Sceptre en palétuvier", + cherry: "Sceptre en cerisier", + bamboo: "Sceptre en bambou", + edified: "Sceptre édifié", + quenched: "Sceptre de fragment cristallisé", + mindsplice: "Sceptre de l'imprégnateur d'esprit", }, amethyst_dust: "Poussière d'améthyste", charged_amethyst: "Améthyste chargée", @@ -89,13 +91,16 @@ all: "Il semblerait que j'ai découvert toute l'histoire de ce monde.", }, lens: "Lentille Divinatoire", + quenched_allay_shard: "Fragment d'allay cristallisé", + uuid_colorizer: "Pigment d'éclat de l'âme", + default_colorizer: "Pigment absent", }, "entity.hexcasting": { wall_scroll: "Rouleau suspendu", }, "block.hexcasting": { conjured_light: "Lumière Conjurée", - conjured_block: "Block Conjuré", + conjured_block: "Bloc Conjuré", akashic_: { record: "Archive Akashique", bookshelf: "Bibliothèque Akashique", @@ -131,6 +136,11 @@ scroll_paper_lantern: "Lanterne en Papier", ancient_scroll_paper_lantern: "Lanterne en Papier Antique", amethyst_sconce: "Applique Murale d'Améthyste", + directrix: { + empty: "Directrice vide", + redstone: "Directrice du Maçon", + boolean: "Directrice du Berger", + }, }, "effect.hexcasting": { enlarge_grid: "Clarté", @@ -185,5 +195,19 @@ "tag.hexcasting": { staves: "Bâtons de Hex", phial_base: "Fioles Vides", + edified_logs: "Bûches Éveillées", + edified_planks: "Planches Éveillées", + }, + "tag.item.hexcasting": { + directrices: "Directrices", + }, + "text.autoconfig.hexcasting": { + option: { + common: { + dustMediaAmount: { + "@Tooltip": "Combien d'unités de média vaut une seule poudre d'améthyste", + }, + }, + }, }, } From 6e243c31ab640786a5dd55e6b67aba8bd79ef3c0 Mon Sep 17 00:00:00 2001 From: Lithyaku Date: Sun, 16 Aug 2026 19:01:29 +0000 Subject: [PATCH 22/50] chore(l10n): update French translation Co-authored-by: Lithyaku Language: French Progress: 12.0% (167 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 | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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 aa66b97875..3da712fbce 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 @@ -141,6 +141,30 @@ redstone: "Directrice du Maçon", boolean: "Directrice du Berger", }, + edified_: { + log: "Bûche Éveillée", + log_amethyst: "Bûche d'Améthyste Éveillée", + log_aventurine: "Bûche d'Aventurine Éveillée", + log_citrine: "Bûche de Citrine Éveillée", + log_purple: "Bûche Éveillée Violette", + wood: "Bois Éveillé", + planks: "Planches de Bois Éveillé", + panel: "Panneau de Bois Éveillé", + tile: "Carrelage de Bois Éveillé", + door: "Porte de Bois Éveillé", + trapdoor: "Trappe de Bois Éveillé", + stairs: "Escaliers de Bois Éveillé", + slab: "Dalle de Bois Éveillé", + button: "Bouton de Bois Éveillé", + pressure_plate: "Plaque de Pression de Bois Éveillé", + fence: "Barrière de Bois Éveillé", + fence_gate: "Portillon de Bois Éveillé", + }, + stripped_edified_log: "Bûche Éveillée Écorcée", + stripped_edified_wood: "Bois Éveillé Écorcé", + amethyst_edified_leaves: "Feuilles d'Arbre Éveillé d'Améthyste", + aventurine_edified_leaves: "Feuilles d'Arbre Éveillé d'Aventurine", + citrine_edified_leaves: "Feuilles d'Arbre Éveillé de Citrine", }, "effect.hexcasting": { enlarge_grid: "Clarté", From 6beda4b9011cf4aed7f27e5e8fb2e77d9e0479dd Mon Sep 17 00:00:00 2001 From: Christian perez Date: Sun, 16 Aug 2026 19:01:29 +0000 Subject: [PATCH 23/50] chore(l10n): update Spanish translation Co-authored-by: Christian perez Language: Spanish Progress: 18.2% (253 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 1144 ++++++++--------- 1 file changed, 572 insertions(+), 572 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index e6781cfe85..8b918772ea 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -398,31 +398,31 @@ }, "book.hexcasting:": { "zone_entity/": { - not_animal: "Zone Dstl.: Non-Animal", - not_monster: "Zone Dstl.: Non-Monster", - not_item: "Zone Dstl.: Non-Item", - not_player: "Zone Dstl.: Non-Player", - not_living: "Zone Dstl.: Non-Living", + not_animal: "", + not_monster: "", + not_item: "", + not_player: "", + not_living: "", }, - mul: "Multiplicative Dstl.", - div: "Division Dstl.", - arcsin: "Inverse Sine Prfn.", - arccos: "Inverse Cosine Prfn.", - arctan: "Inverse Tangent Prfn.", + mul: "", + div: "", + arcsin: "", + arccos: "", + arctan: "", "const/vec/": { - x: "Vector Rfln. +X/-X", - y: "Vector Rfln. +Y/-Y", - z: "Vector Rfln. +Z/-Z", + x: "", + y: "", + z: "", }, - "read/entity": "Chronicler's Prfn.", - bool_to_number: "Numerologist's Prfn.", - number: "Numerical Reflection", - mask: "Bookkeeper's Gambit", + "read/entity": "", + bool_to_number: "", + number: "", + mask: "", }, }, "special.hexcasting:": { - number: "Numerical Reflection: %s", - mask: "Bookkeeper's Gambit: %s", + number: "", + mask: "", }, "iota.hexcasting:": { "null": { @@ -435,16 +435,16 @@ "": "Boolean", }, entity: { - "": "Entity", + "": "", }, list: { "": "List", }, pattern: { - "": "Pattern", + "": "", }, garbage: { - "": "Garbage", + "": "", }, vec3: { "": "Vector", @@ -453,45 +453,45 @@ mishap: { "": "%s: %s", invalid_pattern: "That pattern isn't associated with any action", - unescaped: "Expected to evaluate a pattern, but evaluated %s instead", - not_enough_args: "expected %s or more arguments but the stack was only %s tall", - no_args: "expected %s or more arguments but the stack was empty", - wrong_dimension: "cannot see %s from %s", - entity_too_far: "%s is out of range", - immune_entity: "cannot alter %s", - no_item: "needs %s but got nothing", - "no_item.offhand": "needs %s in the other hand but got nothing", - bad_entity: "needs %s but got %s", - bad_brainsweep: "The %s rejected the being's mind", - already_brainswept: "The mind has already been used", + unescaped: "", + not_enough_args: "", + no_args: "", + wrong_dimension: "", + entity_too_far: "", + immune_entity: "", + no_item: "", + "no_item.offhand": "", + bad_entity: "", + bad_brainsweep: "", + already_brainswept: "", no_spell_circle: "%s requires a spell circle", - others_name: "Tried to invade the privacy of %s's soul", - "others_name.self": "Tried to divulge my Name too recklessly", + others_name: "", + "others_name.self": "", divide_by_zero: { - divide: "Attempted to divide %s by %s", - project: "Attempted to project %s onto %s", - exponent: "Attempted to raise %s to the %s", - logarithm: "Attempted to get the logarithm of %s in base %s", + divide: "", + project: "", + exponent: "", + logarithm: "", zero: { "": "zero", - power: "zeroth power", + power: "", vec: "the zero vector", }, - power: "power of %s", - sin: "the sine of %s", - cos: "the cosine of %s", + power: "", + sin: "", + cos: "", }, invalid_operator_args: { - one: "got an unexpected iota at index %d of the stack: %s", - many: "got %d unexpected iotas at indices %d-%d of the stack: %s", + one: "", + many: "", }, - no_akashic_record: "No Akashic Record at %s", + no_akashic_record: "", disallowed: "has been disallowed by the server admins", disallowed_circle: "has been disallowed in spell circles by the server admins", - invalid_spell_datum_type: "Tried to use a value of invalid type as a SpellDatum: %s (class %s). This is a bug in the mod.", - unknown: "threw an exception (%s). This is a bug in the mod.", - stack_size: "Exceeded the size limit of the stack", - bad_caster: "Tried to execute a pattern that requires a greater mind", + invalid_spell_datum_type: "", + unknown: "", + stack_size: "", + bad_caster: "", invalid_value: { "": "expected %s at index %s of the stack, but got %s", "class": { @@ -499,251 +499,251 @@ boolean: "a boolean", vector: "a vector", list: "a list", - pattern: "a pattern", + pattern: "", entity: { - "": "an entity", - item: "an item entity", - player: "a player", - living: "a living entity", + "": "", + item: "", + player: "", + living: "", }, - entity_or_vector: "an entity or a vector", - unknown: "(unknown, uh-oh, this is a bug)", + entity_or_vector: "", + unknown: "", }, numvec: "a number or vector", numlist: "an integer or list", double: { positive: { - "": "a positive number", - less: "a positive number less than %d", - "less.equal": "a positive number less than or equal to %d", + "": "", + less: "", + "less.equal": "", }, - between: "a number between %d and %d", + between: "", }, int: { "": "an integer", positive: { - "": "a positive integer", - less: "a positive integer less than %d", - "less.equal": "a positive integer less than or equal to %d", + "": "", + less: "", + "less.equal": "", }, - between: "an integer between %d and %d", + between: "", }, - evaluatable: "something evaluatable", + evaluatable: "", bool_commute: "a boolean, 0, or 1", }, location_: { - too_far: "%s is out of range", - out_of_world: "%s is not within the world", - too_close_to_out: "%s is too close to the boundary of the world", - forbidden: "%s is forbidden to you", - bad_dimension: "This dimension forbids that action", + too_far: "", + out_of_world: "", + too_close_to_out: "", + forbidden: "", + bad_dimension: "", }, bad_item: { - "": "needs %s but got %dx %s", - offhand: "needs %s in the other hand but got %dx %s", + "": "", + offhand: "", iota: { - "": "a place to store iotas", - read: "a place to read iotas from", - write: "a place to write iotas to", - readonly: "a place that will accept %s", + "": "", + read: "", + write: "", + readonly: "", }, - media: "a media-containing item", - media_for_battery: "a raw media item", - only_one: "exactly one item", - eraseable: "an eraseable item", - bottle: "a glass bottle", - rechargable: "a rechargable item", - colorizer: "a pigment", - variant: "an item with variants", + media: "", + media_for_battery: "", + only_one: "", + eraseable: "", + bottle: "", + rechargable: "", + colorizer: "", + variant: "", }, bad_block: { - "": "Expected %s at %s, but got %s", - sapling: "a sapling", - replaceable: "somewhere to place a block", + "": "", + sapling: "", + replaceable: "", }, "circle.bool_directrix": { - no_bool: "the iota encountered at %s was %s, not a bool", - empty_stack: "the stack was empty at %s", + no_bool: "", + empty_stack: "", }, }, circles: { - no_exit: "The flow of media at %s could not find an exit", - many_exits: "The flow of media at %s had too many exits", + no_exit: "", + many_exits: "", }, - landing: "I seem to have discovered a new method of magical arts, in which one draws patterns strange and wild onto a hexagonal grid. It fascinates me. I've decided to start a journal of my thoughts and findings.$(br2)$(l:https://forum.petra-k.at/index.php)Forum Link/$", + landing: "", category: { basics: { - "": "Getting Started", - desc: "The practitioners of this art would cast their so-called _Hexes by drawing strange patterns in the air with a $(l:items/staff)$(item)Staff/$ -- or craft $(l:items/hexcasting)$(item)powerful magical items/$ to do the casting for them. How might I do the same?", + "": "", + desc: "", }, casting: { "": "Hex Casting", - desc: "I've started to understand how the old masters cast their _Hexes! It's a bit complicated, but I'm sure I can figure it out. Let's see...", + desc: "", }, items: { "": "Items", - desc: "I devote this section to the magical and mysterious items I might encounter in my studies.", + desc: "", }, greatwork: { - "": "The Great Work", - desc: "I have seen... so much. I have... experienced... annihilation and deconstruction and reconstruction. I have seen the atoms of the world screaming as they were inverted and subverted and demoted to energy. I have seen I have seen I have s$(k)get stick bugged lmao/$", + "": "", + desc: "", }, lore: { - "": "Lore", - desc: "I have uncovered some letters and text not of direct relevance to my art. But, I think I may be able to divine some of the history of the world from these. Let me see...", + "": "", + desc: "", }, interop: { - "": "Cross-Mod Compatibility", - desc: "It appears I have installed some mods Hexcasting interoperates with! I've detailed them here.", + "": "", + desc: "", }, patterns: { - "": "Patterns", - desc: "A list of all the patterns I've discovered, as well as what they do.", + "": "", + desc: "", }, spells: { - "": "Spells", - desc: "Patterns and actions that perform a magical effect on the world.", + "": "", + desc: "", }, great_spells: { - "": "Great Spells", - desc: "The spells catalogued here are purported to be of legendary difficulty and power. They seem to have been recorded only $(l:items/scroll)sparsely/$ (for good reason, the texts claim). It's probably just the ramblings of extinct traditionalists, though -- a pattern's a pattern.$(br2)What could possibly go wrong?", + "": "", + desc: "", }, }, entry: { media: "Media", - geodes: "Geodes", - couldnt_cast: "A Frustration", + geodes: "", + couldnt_cast: "", start_to_see: "WHAT DID I SEE", "101": "Hex Casting 101", - vectors: "A Primer On Vectors", + vectors: "", stack: "The Stack", - naming: "Naming Actions", - amethyst: "Amethyst", - staff: "Staves", - lens: "Scrying Lens", - jeweler_hammer: "Jeweler's Hammer", - thought_knot: "Thought-Knot", - focus: "Focus", - abacus: "Abacus", - spellbook: "Spellbook", - scroll: "Scrolls", - slate: "Slates", + naming: "", + amethyst: "", + staff: "", + lens: "", + jeweler_hammer: "", + thought_knot: "", + focus: "", + abacus: "", + spellbook: "", + scroll: "", + slate: "", hexcasting: "Casting Items", - phials: "Phials of Media", - potions: "Hex Potions", - pigments: "Pigments", - edified: "Edified Trees", - decoration: "Decorative Blocks", + phials: "", + potions: "", + pigments: "", + edified: "", + decoration: "", the_work: "The Work", - brainsweeping: "On The Flaying of Minds", - spellcircles: "Spell Circles", - impetus: "Impeti", - directrix: "Directrices", - akashiclib: "Akashic Libraries", - quenching_allays: "Quenching Allays", - fanciful_staves: "Fanciful Staves", - readers_guide: "How to Read This Section", - basics_pattern: "Basic Patterns", - numbers: "Number Literals", - math: "Mathematics", - advanced_math: "Advanced Mathematics", - sets: "Sets", - consts: "Constants", - stackmanip: "Stack Manipulation", - logic: "Logical Operators", - entities: "Entities", - lists: "List Manipulation", - patterns_as_iotas: "Escaping Patterns", - readwrite: "Reading and Writing", - meta: "Meta-Evaluation", - circle_patterns: "Spell Circle Patterns", - akashic_patterns: "Akashic Patterns", - itempicking: "Working with Items", - basic_spell: "Basic Spells", - blockworks: "Block Manipulation", - nadirs: "Nadirs", - hexcasting_spell: "Crafting Casting Items", - sentinels: "Sentinels", - flights: "Flight", - weather_manip: "Weather Manipulation", - zeniths: "Zeniths", + brainsweeping: "", + spellcircles: "", + impetus: "", + directrix: "", + akashiclib: "", + quenching_allays: "", + fanciful_staves: "", + readers_guide: "", + basics_pattern: "", + numbers: "", + math: "", + advanced_math: "", + sets: "", + consts: "", + stackmanip: "", + logic: "", + entities: "", + lists: "", + patterns_as_iotas: "", + readwrite: "", + meta: "", + circle_patterns: "", + akashic_patterns: "", + itempicking: "", + basic_spell: "", + blockworks: "", + nadirs: "", + hexcasting_spell: "", + sentinels: "", + flights: "", + weather_manip: "", + zeniths: "", lore: { - cardamom1: "Cardamom Steles, #1", - cardamom2: "Cardamom Steles, #2", - cardamom3: "Cardamom Steles, #3", - cardamom4: "Cardamom Steles, #4", - cardamom5: "Cardamom Steles, #5", - experiment1: "Wooleye Instance Notes", - experiment2: "Wooleye Interview Logs", - inventory: "Restoration Log #72", + cardamom1: "", + cardamom2: "", + cardamom3: "", + cardamom4: "", + cardamom5: "", + experiment1: "", + experiment2: "", + inventory: "", }, interop: { - "": "Cross-Mod Interations", - gravity: "Gravity Changer", - pehkui: "Pehkui", + "": "", + gravity: "", + pehkui: "", }, }, page: { media: { - "1": "_Media is a form of mental energy external to a mind. All living creatures generate trace amounts of _media when thinking about anything; after the thought is finished, the media is released into the environment.$(br2)The art of casting _Hexes is all about manipulating _media to do your bidding.", - "2": "_Media can exert influences on other media-- the strength and type of influence can be manipulated by drawing _media out into patterns.$(p)Scholars of the art used a concentrated blob of _media on the end of a stick: by waving it in the air in precise configurations, they were able to manipulate enough _media with enough precision to influence the world itself, in the form of a _Hex.", - "3": "Sadly, even a fully sentient being (like myself, presumably) can only generate miniscule amounts of _media. It would be quite impractical to try and use my own brainpower to cast Hexes.$(br2)But legend has it that there are underground deposits where _media slowly accumulates, growing into crystalline forms.$(p)If I could just find one of those...", + "1": "", + "2": "", + "3": "", }, geodes: { - "1": "Aha! While mining deep underground, I found an enormous geode resonating with energy-- energy which pressed against my skull and my thoughts. And now, I hold that pressure in my hand, in solid form. That proves it. This $(italic)must/$ be the place spoken about in legends where _media accumulates.$(br2)These $(l:items/amethyst)$(item)amethyst crystals/$ must be a $(l:items/amethyst)$(thing)convenient, solidified form of _Media/$.", - "2": "It appears that, in addition to the $(l:items/amethyst)$(item)Amethyst Shards/$ I have seen in the past, these crystals can also drop bits of powdered $(l:items/amethyst)$(item)Amethyst Dust/$, as well as these $(l:items/amethyst)$(item)Charged Amethyst Crystals/$. It looks like I'll have a better chance of finding the $(l:items/amethyst)$(item)Charged Amethyst Crystals/$ by using a Fortune pickaxe.", - "3": "As I take the beauty of the crystal in, I can feel connections flashing wildly in my mind. It's like the _media in the air is entering me, empowering me, elucidating me... It feels wonderful.$(br2)Finally, my study into the arcane is starting to make some sense!$(p)Let me reread those old legends again, now that I know what I'm looking at.", + "1": "", + "2": "", + "3": "", }, couldnt_cast: { - "1": "Argh! Why won't it let me cast the spell?!$(br2)The scroll I found rings with authenticity. I can $(italic)feel/$ it humming in the scroll-- the pattern is true, or as true as it can be. The spell is $(italic)right there/$.$(p)But it feels as if it's on the other side of some thin membrane. I called it-- it tried to manifest-- yet it $(italic)COULD NOT/$.", - "2": "It felt like the barrier may have weakened ever so slightly from the force that I exerted on the spell; yet despite my greatest efforts-- my deepest focus, my finest amethyst, my precisest drawings-- it $(italic)refuses/$ to cross the barrier. It's maddening.$(p)$(italic)This/$ is where my arcane studies end? Cursed by impotence, cursed to lose my rightful powers?$(br2)I should take a deep breath. I should meditate on what I have learned, even if it wasn't very much...", - "3": "...After careful reflection... I have discovered a change in myself.$(p)It seems... in lieu of $(l:items/amethyst)$(item)amethyst/$, I've unlocked the ability to cast spells using my own mind and life energy-- just as I read of in the legends of old.$(p)I'm not sure why I can now. It's just... the truth-knowledge-burden was always there, and I see it now. I know it. I bear it.$(br2)Fortunately, I feel my limits as well-- I would get approximately two $(l:items/amethyst)$(item)Charged Amethyst/$'s worth of _media out of my health at its prime.", - "4": "I shudder to even consider it-- I've kept my mind mostly intact so far, in my studies. But the fact is-- I form one side of a tenuous link.$(p)I'm connected to some other side-- a side whose boundary has thinned from that trauma. A place where simple actions spell out eternal glory.$(p)Is it so wrong, to want it for myself?", + "1": "", + "2": "", + "3": "", + "4": "", }, start_to_see: { - "1": "The texts weren't lying. Nature took its due.", - "2": "That... that was...$(p)...that was one of the $(italic)worst/$ things I've $(italic)ever/$ experienced. I offered my plan to Nature, and got a firm smile and a tearing sensation in return-- a piece of myself breaking away, like amethyst dust in the rain.$(p)I feel lucky to have $(italic)survived/$, much less have the sagacity to write this-- I should declare the matter closed, double-check my math before I cast any more _Hexes, and never make such a mistake again.", - "3": "...But.$(br2)But for the scarcest instant, that part of myself... it $(italic)saw/$... $(l:greatwork/the_work)$(thing)something/$. A place-- a design, perhaps? (Such distinctions didn't seem to matter in the face of... that.)$(p)And a... a membrane-barrier-skin-border, separating myself from a realm of raw thought-flow-light-energy. I remember-- I saw-thought-recalled-felt-- the barrier fuzzing at its edges, just so slightly.$(p)I wanted $(italic)through./$", - "4": "I shouldn't. I $(italic)know/$ I shouldn't. It's dangerous. It's too dangerous. The force required... I'd have to bring myself within a hair's breadth of Death itself with a $(italic)single stroke/$.$(br2)But I'm. So. $(italic)Close/$.$(p)$(italic)This/$ is the culmination of my art. This is the $(#54398a)Enlightenment/$ I've been seeking. $(br2)I want more. I need to see it again. I $(italic)will/$ see it.$(p)What is my mortal mind against immortal glory?", + "1": "", + "2": "", + "3": "", + "4": "", }, casting: { overview: { - "1": "I believe it's good to always start off on the right foot. So, I've compiled the patterns for a _Hex that will cause a modest explosion at the position I am looking at. I believe examining the inner workings of this _Hex will be quite edifying.", + "1": "", }, grid: { - "1": "I will generally provide my patterns to Nature via my $(l:items/staff)$(item)Staff/$. Pressing $(thing)$(k:use)/$ with one in my hand will cause a hexagonal grid of dots to appear in front of me. I can then click, drag from dot to dot, and release to draw patterns.$(br2)Once I submit a pattern, it is executed (see the next chapter).", - "2": "Pressing $(thing)$(k:escape)/$ saves and closes the grid; when I next use my staff, all my patterns and iotas will still be there.$(br2)Should I wish to reset my casting state, I can do so by sneaking while opening the grid.", + "1": "", + "2": "", }, "patterns&actions": { - "1": "$(thing)Patterns/$ are paths traced through the grid of _media. I believe the sixfold symmetry of patterns is what gives my art its name.$(br2)$(thing)Actions/$, meanwhile, are what patterns $(italic)do/$.", - "2": "The difference is similar to the difference between $(italic)words/$ and $(italic)meanings/$. Any jumble of letters forms a word, but most of them (like \"xnopyt\") don't mean anything. Similarly, any squiggle yanked through the _media is technically a pattern, but most of them won't do anything.", - "3": "Actions are somewhat like commands to the grand systems rules that govern the universe (which I have seen some texts personify as \"Nature.\"). They tend to do one of a few things:$(li)Gather some information about the world, such as finding the position of a entity.$(li)Manipulate the info gathered, like finding the distance between two positions.$(li)Perform some magical effect on the world, like summoning lightning or an explosion.$(br)These last kinds of actions are called \"spells.\", and are generally what attract people to the art.", - "4": "A _Hex, then, is a sequence of valid patterns presented to Nature in sequence. Nature interprets each of these patterns one-by-one and, if it understands, changes the world to my whims. (Or, what it thinks my whims are.)", - "5": "Although some actions can be performed easily, some require a payment in the form of coalesced _media. I believe the concentrated mental energy is used as a sort of argument to Nature, convincing it that it should indeed do as I ask. Most spells require this kind of payment, but a few non-spell actions do too.$(br2)I've recorded the costs, if any, of each action on their respective pages.", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", }, iotas: { - "1": "The \"nouns\" in Nature's language are called $(thing)iotas/$. At its most basic level, Hexcasting is the art of manipulating iotas.$(br2)Iotas come in many different types:$(li)Numbers (which some legends called \"doubles\").$(li)Vectors, a collection of three numbers representing a position, movement, or direction.$(li)Booleans or \"bools\" for short, representing an abstract True or False.$(li)Entities, like myself, chickens, and minecarts.", + "1": "", "2": "$(li)Influences, peculiar types of iota that seem to represent abstract ideas.$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$.$(li)A list of several of the above, gathered into a single iota.", "3": "Generally, I provide iotas to actions. For example, take $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. This spell requires a number iota, to indicate the strength, and a vector iota, to indicate the location.$(br2)Or, take $(l:patterns/basic#hexcasting:get_pos)$(action)Compass Purification/$. This takes an entity iota and transforms it into a vector iota, representing the position of that entity.", }, }, "101": { - "1": "Casting a _Hex is quite difficult-- no wonder this art was lost to time! I'll have to re-read my notes carefully.$(br2)I can start a _Hex by pressing $(k:use) with a $(l:items/staff)$(item)Staff/$ in my hand-- this will cause a hexagonal grid of dots to appear in front of me. Then I can click and drag from dot to dot to draw patterns in the _media of the grid; finishing a pattern will run its corresponding action (more on that later).", - "2": "Once I've drawn enough patterns to cast a spell, the grid will disappear as the _media I've stored up is released. Holding $(k:sneak) while using my $(l:items/staff)$(item)staff/$ will also clear the grid.$(br2)So how do patterns work? In short:$(li)$(italic)Patterns/$ will execute...$(li)$(italic)Actions/$, which manipulate...$(li)$(l:casting/stack)$(italic)The Stack/$, which is a list of...$(li)$(italic)Iotas/$, which are simply units of information.", + "1": "", + "2": "", "3": "First, $(thing)patterns/$. These are essential-- they're what I use to manipulate the _media around me. Certain patterns, when drawn, will cause $(thing)actions/$ to happen. Actions are what actually $(italic)do/$ the magic; all patterns influence _media in particular ways, and when those influences end up doing something useful, we call it an action.$(br2)_Media can be fickle: if I draw an invalid pattern, I'll get some $(l:casting/influences)$(action)garbage/$ result somewhere on my stack (read on...)", - "4.header": "An Example", + "4.header": "", "4": "It's interesting to note that the $(italic)rotation/$ of a pattern doesn't seem to matter at all. These two patterns both perform an action called $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, for example.", - "5": "A _Hex is cast by drawing (valid) actions in sequence. Each action might do one of a few things:$(li)Gather some information about the environment, leaving it on the top of the stack;$(li)manipulate the info gathered (e.g. adding two numbers); or$(li)perform some magical effect, like summoning lightning or an explosion. (These actions are called \"spells.\")$(p)When I start casting a _Hex, it creates an empty stack. Actions manipulate the top of that stack.", + "5": "", "6": "For example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ will create an iota representing $(italic)me/$, the caster, and add it to the top of the stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$ will take the iota at the top the stack, if it represents an entity, and transform it into an iota representing that entity's location.$(br2)So, drawing those patterns in that order would result in an iota on the stack representing my position.", "8": "$(li)Entities, like myself, chickens, and minecarts;$(li)Influences, peculiar types of iota that seem to represent abstract ideas;$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$; and$(li)A list of several of the above, gathered into a single iota.", - "9": "Of course, there's no such thing as a free lunch. All spells, and certain other actions, require _media as payment.$(br2)The best I can figure, a _Hex is a little bit like a plan of action presented to Nature-- in this analogy, the _media is used to provide the arguments to back it up, so Nature will accept your plan and carry it out.", - "10": "That aside, it doesn't seem like anyone has done much research on exactly how $(italic)much/$ any particular piece of $(l:items/amethyst)$(item)amethyst/$ is valued. The best I can tell, an $(l:items/amethyst)$(item)Amethyst Shard/$ is worth about five pieces of $(l:items/amethyst)$(item)Amethyst Dust/$, and a $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ is worth about ten.$(br2)Strangely enough, it seems like no other form of $(l:items/amethyst)$(item)amethyst/$ is suitable to be used in the casting of a _Hex. I suspect that whole blocks or crystals are too solid to be easily unraveled into _media.", - "11": "It's also worth noting that each action will consume the _media it needs immediately, rather than all at once when the Hex finishes. Also, an action will always consume entire items-- an action that only requires one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of _media will consume an entire $(l:items/amethyst)$(item)Charged Amethyst Crystal/$, if that's all that's present in my inventory.$(br2)Thus, it might be a good idea to bring dust for spellcasting too-- waste not, want not...", - "12": "I should also be careful to make sure I actually have enough Amethyst in my inventory-- some old texts say that Nature is happy to use one's own mind as payment instead. They describe the feeling as awful but strangely euphoric, \"[...] an effervescent dissolution into light and energy...\" Perhaps that's why all the old practitioners of the art went mad. I can't imagine burning pieces of my mind for power is $(italic)healthy/$.", - "13": "Maybe something's changed, though. In my experiments, I've never managed to do it; if I run out of _media, the spell will simply fail to cast, as if some barrier is blocking it from harming me. $(br2)It would be interesting to get to the bottom of that mystery, but for now I suppose it'll keep me safe.", - "14": "I have also found an amusing tidbit on why so many practitioners of magic in general seem to go mad, which I may like as some light and flavorful reading not canonical to my world.$(br2)$(italic)Content Warning: some body horror and suggestive elements./$", - "14.link_text": "Goblin Punch", - "15": "Finally, it seems spells have a maximum range of influence, about 32 blocks from my position. Trying to affect anything outside of that will cause the spell to fail.$(br2)Despite this, if I have a player's reference, I can affect them from anywhere. This only applies to affecting them directly, though; I cannot use this to affect the world around them if they're outside of my range.$(br)I ought to be careful when giving out a reference like that. While friendly _Hexcasters could use them to great effect and utility, I shudder to think of what someone malicious might do with this.", + "9": "", + "10": "", + "11": "", + "12": "", + "13": "", + "14": "", + "14.link_text": "", + "15": "", }, vectors: { "1": "It seems I will need to be adroit with vectors if I am to get anywhere in my studies. I have compiled some resources here on vectors if I find I do not know how to work with them.$(br2)First off, an enlightening video on the topic.", @@ -754,283 +754,283 @@ "1": "Unfortunately, I am not (yet) a perfect being. I make mistakes from time to time in my study and casting of _Hexes; for example, misdrawing a pattern, or trying to an invoke an action with the wrong iotas. And Nature usually doesn't look too kindly on my mistakes-- causing what is called a $(italic)percance/$.", "2": "A pattern that causes a percance will glow red in my grid. Depending on the type of mistake, I can also expect a certain deleterious effect and a spray of red and colorful sparks as the mishandled _media curdles into light of a given color.", "3": "Fortunately, although the bad effects of percances are certainly $(italic)annoying/$, none of them are especially destructive in the long term. Nothing better to do than dust myself off and try again ... but I should strive for better anyways.$(br2)Following is a list of percances I have compiled.", - "invalid_pattern.title": "Invalid Pattern", + "invalid_pattern.title": "", invalid_pattern: "The pattern drawn is not associated with any action.$(br2)Causes yellow sparks, and a $(l:casting/influences)$(action)Garbage/$ will be pushed to the top of my stack.", - "not_enough_iotas.title": "Not Enough Iotas", + "not_enough_iotas.title": "", not_enough_iotas: "The action required more iotas than were on the stack.$(br2)Causes light gray sparks, and as many $(l:casting/influences)$(action)Garbages/$ as would be required to fill up the argument count will be pushed.", - "stack_size.title": "Too Many Iotas", + "stack_size.title": "", stack_size: "I tried to cast a spell which exceeded the size limit of the stack.$(br2)Causes black sparks, and my entire stack will be replaced with a single $(l:casting/influences)$(action)Garbage/$.", - "incorrect_iota.title": "Incorrect Iota", + "incorrect_iota.title": "", incorrect_iota: "The action that was executed expected an iota of a certain type for an argument, but it got something invalid. If multiple iotas are invalid, the error message will only tell me about the error deepest in the stack.$(br2)Causes dark gray sparks, and the invalid iota will be replaced with $(l:casting/influences)$(action)Garbage/$.", - "vector_out_of_range.title": "Vector Out of Ambit", - vector_out_of_range: "The action tried to affect the world at a point that was out of my range.$(br2)Causes magenta sparks, and the items in my hands will be yanked out and flung towards the offending location.", - "entity_out_of_range.title": "Entity Out of Ambit", - entity_out_of_range: "The action tried to affect an entity that was out of my range.$(br2)Causes pink sparks, and the items in my hands will be yanked out and flung towards the offending entity.", - "entity_immune.title": "Entity is Immune", - entity_immune: "The action tried to affect an entity that cannot be altered by it.$(br2)Causes blue sparks, and the items in my hands will be yanked out and flung towards the offending entity.", + "vector_out_of_range.title": "", + vector_out_of_range: "", + "entity_out_of_range.title": "", + entity_out_of_range: "", + "entity_immune.title": "", + entity_immune: "", "math_error.title": "Mathematical Error", math_error: "The action did something offensive to the laws of mathematics, such as dividing by zero.$(br2)Causes red sparks, pushes a $(l:casting/influences)$(action)Garbage/$ to my stack, and my mind will be ablated, stealing half the vigor I have remaining. It seems that Nature takes offense to such operations, and divides $(italic)me/$ in retaliation.", - "incorrect_item.title": "Incorrect Item", - incorrect_item: "The action requires some sort of item, but the item I supplied was not suitable.$(br2)Causes brown sparks. If the offending item was in my hand, it will be flung to the floor. If it was in entity form, it will be flung in the air.", - "incorrect_block.title": "Incorrect Block", - incorrect_block: "The action requires some sort of block at a target location, but the block supplied was not suitable.$(br2)Causes bright green sparks, and causes an ephemeral explosion at the given location. The explosion doesn't seem to harm me, the world, or anything else though; it's just startling.", - "true_name.title": "Transgress Other", - true_name: "I attempted to $(l:patterns/readwrite#hexcasting:write)$(action)save a reference/$ to another player to a permanent medium.$(br2)Causes black sparks, and robs me of my sight for approximately one minute.", - "disabled.title": "Disallowed Action", - disabled: "I tried to cast an action that has been disallowed by a server administrator.$(br2)Causes black sparks.", - "other.title": "Catastrophic Failure", - other: "A bug in the mod caused an iota of an invalid type or otherwise caused the spell to crash. $(l:https://github.com/gamma-delta/HexMod/issues)Please open a bug report!/$$(br2)Causes black sparks.", + "incorrect_item.title": "", + incorrect_item: "", + "incorrect_block.title": "", + incorrect_block: "", + "true_name.title": "", + true_name: "", + "disabled.title": "", + disabled: "", + "other.title": "", + other: "", }, stack: { - "1": "A $(thing)Stack/$, also known as a \"LIFO\", is a concept borrowed from computer science. In short, it's a collection of things designed so that you can only interact with the most recently used thing.$(br2)Think of a stack of plates, where new plates are added to the top: if you want to interact with a plate halfway down the stack, you have to remove the plates above it in order to get ahold of it.", - "2": "Because a stack is so simple, there's only so many things you can do with it:$(li)$(italic)Adding something to it/$, known formally as pushing,$(li)$(italic)Removing the last added element/$, known as popping, or$(li)$(italic)Examining or modifying the last added element/$, known as peeking.$(br)We call the last-added element the \"top\" of the stack, in accordance with the dinner plate analogy.$(p)As an example, if we push 1 to a stack, then push 2, then pop, the top of the stack is now 1.", + "1": "", + "2": "", "3": "Actions are (on the most part) restricted to interacting with the casting stack in these ways. They will pop some iotas they're interested in (known as \"arguments\" or \"parameters\"), process them, and push some number of results.$(br2)Of course, some actions (e.g. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$) might pop no arguments, and some actions (particularly spells) might push nothing afterwards.", - "4": "Even more complicated actions can be expressed in terms of pushing, popping, and peeking. For example, $(l:patterns/stackmanip#hexcasting:swap)$(action)Jester's Gambit/$ swaps the top two items of the stack. This can be thought of as popping two items and pushing them in opposite order. For another, $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Gemini Decomposition/$ duplicates the top of the stack-- in other words, it peeks the stack and pushes a copy of what it finds.", + "4": "", }, naming: { - "1": "The names given to actions by the ancients were certainly peculiar, but I think there's a certain kind of logic to them.$(br2)There seem to be certain groups of actions with common names, named for the number of iotas they remove from and add to the stack.", - "2": "$(li)A $(thing)Reflection/$ pops nothing and pushes one iota.$(li)A $(thing)Purification/$ pops one and pushes one.$(li)A $(thing)Distillation/$ pops two and pushes one.$(li)An $(thing)Exaltation/$ pops three or more and pushes one.$(li)A $(thing)Decomposition/$ pops one argument and pushes two.$(li)A $(thing)Disintegration/$ pops one and pushes three or more.$(li)Finally, a $(thing)Gambit/$ pushes or pops some other number (or rearranges the stack in some other manner).", - "3": "Spells seem to be exempt from this nomenclature and are more or less named after what they do-- after all, why call it a $(action)Demoman's Gambit/$ when you could just say $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$?", + "1": "", + "2": "", + "3": "", }, mishaps2: { - "1": "I have discovered new and horrifying modes of failure. I must not succumb to them.", + "1": "", "bad_mindflay.title": "Desomente inerte", bad_mindflay: "Attempted to flay the mind of something that I have either already used, or of a character not suitable for the target block.$(br2)Causes dark green sparks, and kills the subject. If a villager sees that, I doubt they would look on it favorably.", - "no_circle.title": "Lack Spell Circle", - no_circle: "Tried to cast an action requiring a spell circle without a spell circle.$(br2)Causes light blue sparks, and upends my inventory onto the ground.", - "no_record.title": "Lack Akashic Record", - no_record: "Tried to access an $(l:greatwork/akashiclib)$(item)Akashic Record/$ at a location where there isn't one.$(br2)Causes purple sparks, and steals away some of my experience.", + "no_circle.title": "", + no_circle: "", + "no_record.title": "", + no_record: "", }, amethyst: { - dust: "It seems that I'll find three different forms of amethyst when breaking a crystal inside a geode. The smallest denomination seems to be a small pile of shimmering dust, worth a relatively small amount of _media.", - shard: "The second is a whole shard of amethyst, of the type non-_Hexcasters might be used to. This has about as much _media inside as five $(l:items/amethyst)$(item)Amethyst Dust/$.", - crystal: "Finally, I'll rarely find a large crystal crackling with energy. This has about as much _media inside as ten units of $(l:items/amethyst)$(item)Amethyst Dust/$ (or two $(l:items/amethyst)$(item)Amethyst Shards/$).", - lore: "$(italic)The old man sighed and raised a hand toward the fire. He unlocked a part of his brain that held the memories of the mountains around them. He pulled the energies from those lands, as he learned to do in Terisia City with Drafna, Hurkyl, the archimandrite, and the other mages of the Ivory Towers. He concentrated, and the flames writhed as they rose from the logs, twisting upon themselves until they finally formed a soft smile./$", + dust: "", + shard: "", + crystal: "", + lore: "", }, staff: { - "1": "A $(l:items/staff)$(item)Staff/$ is my entry point into casting all _Hexes, large and small. By holding it and pressing $(thing)$(k:use)/$, I begin casting a _Hex; then I can click and drag to draw patterns.$(br2)It's little more than a chunk of _media on the end of a stick; that's all that's needed, after all.", - "crafting.header": "Staves", - "crafting.desc": "$(italic)Don't fight; flame, light; ignite; burn bright./$", + "1": "", + "crafting.header": "", + "crafting.desc": "", }, lens: { - "1": "_Media can have peculiar effects on any type of information, in specific circumstances. Coating a glass in a thin film of it can lead to ... elucidating insights.$(br2)By holding a $(l:items/lens)$(item)Scrying Lens/$ in my hand, certain blocks will display additional information when I look at them.", - "2": "For example, looking at a piece of $(item)Redstone/$ will display its signal strength. I suspect I will discover other blocks with additional insight as my studies into my art progress.$(br2)In addition, holding it while casting using a $(l:items/staff)$(item)Staff/$ will shrink the spacing between dots, allowing me to draw more on my grid.$(br2)I can also wear it on my head as a strange sort of monocle.", - "crafting.desc": "$(italic)You must learn... to see what you are looking at./$", + "1": "", + "2": "", + "crafting.desc": "", }, thought_knot: { - "1": "The forgetful often tie a piece of string about their finger to help them remember something important. I believe this idea might be of use in my art. A specially knotted piece of string should be able to hold a single iota stably, irregardless of my stack.$(br2)I will call my invention a $(item)Thought-Knot/$.", - "2": "When I craft it, it stores no iota. Using $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ while holding a $(item)Thought-Knot/$ in my other hand will remove the top of the stack and save it into the $(item)Thought-Knot/$. Using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will copy whatever iota's in the $(item)Thought-Knot/$ and add it to the stack.$(br2)Once a $(item)Thought-Knot/$ has been written to, the string is indelibly tangled; the iota can be read any number of times, but there is no way to erase or overwrite it. Fortunately, they are not expensive.", + "1": "", + "2": "", "3": "Also, if I store an entity in a $(item)Thought-Knot/$ and try to recall it after the referenced entity has died or otherwise disappeared, the $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will add $(l:casting/influences)$(thing)Null/$ to the stack instead.", - "crafting.desc": "$(italic)How would you feel if someone saw you wearing a sign that said, \"I am dashing and handsome?\"/$", + "crafting.desc": "", }, focus: { - "1": "A $(item)Focus/$ is like a $(l:items/thought_knot)$(item)Thought-Knot/$, in that iota can be written to or read from it. However, the advantage of a focus is that it is $(italic)reusable/$. If I make a mistake in the iota I write to a $(item)Focus/$, I can simply cast $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ again and write over the iota inside.", - "2": "If I wish to protect a $(l:items/focus)$(item)focus/$ from accidentally being overwritten, I can seal it with wax by crafting it with a $(item)Honeycomb/$. Attempting to use $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ on a sealed focus will fail.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove this seal along with the contents.", - "3": "Indeed, the only advantage of my $(l:items/thought_knot)$(item)Thought-Knot/$s have over $(item)Foci/$ is that $(item)Foci/$ are more expensive to produce. My research indicates that the early practitioners of the art used exclusively $(item)Foci/$, with the $(l:items/thought_knot)$(item)Thought-Knot/$ being an original creation of mine.$(br2)Whoever those ancient people were, they must have been very prosperous.", - "crafting.desc": "$(italic)Poison apples, poison worms./$", + "1": "", + "2": "", + "3": "", + "crafting.desc": "", }, abacus: { - "1": "Although there are $(l:patterns/numbers)$(action)patterns for drawing numbers/$, I find them ... cumbersome, to say the least.$(br2)Fortunately, the old masters of my craft invented an ingenious device called an $(l:items/abacus)$(item)Abacus/$ to provide numbers to my casting. I simply set the number to what I want, then read the value using $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$, just like I would read a $(l:items/thought_knot)$(item)Thought-Knot/$ or $(l:items/focus)$(item)Focus/$.", - "2": "To operate one, I simply hold it, sneak, and scroll. If in my main hand, the number will increment or decrement by 1, or 10 if I am also holding $(k:sprint). If in my off hand, the number will increment or decrement by 0.1, or 0.001 if I am also holding $(k:sprint).$(br2)I can shake the abacus to reset it to zero by sneak-right-clicking.", - "crafting.desc": "$(italic)Mathematics? That's for eggheads!/$", + "1": "", + "2": "", + "crafting.desc": "", }, spellbook: { - "1": "A $(l:items/spellbook)$(item)Spellbook/$ is the culmination of my art-- it acts like an entire library of $(l:items/focus)$(item)Foci/$. Up to $(thing)sixty-four/$ of them, to be exact.$(br2)Each page can hold a single iota, and I can select the active page (the page that iotas are saved to and copied from) by sneak-scrolling while holding it, or simply holding it in my off-hand and scrolling while casting a _Hex.", - "2": "Like a $(l:items/focus)$(item)Focus/$, there exists a simple method to prevent accidental overwriting. Crafting it with a $(item)Honeycomb/$ will lacquer the current page, preventing $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$ from modifying its contents. Also like a $(l:items/focus)$(item)Focus/$, using $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Erase Item/$ will remove the lacquer along with the page's contents.$(br2)I can also name each page individually in an anvil. Naming it will change only the name of the currently selected page, for easy browsing.", - "crafting.desc": "$(italic)Wizards love words. Most of them read a great deal, and indeed one strong sign of a potential wizard is the inability to get to sleep without reading something first.", + "1": "", + "2": "", + "crafting.desc": "", }, scroll: { - "1": "A $(l:items/scroll)$(item)Scroll/$ is a convenient method of sharing a pattern with others. I can copy a pattern onto one with $(l:patterns/readwrite#hexcasting:write)$(action)Scribe's Gambit/$, after which it will display in a tooltip.$(br2)I can also place them on the wall as decoration or edification, like a painting, in sizes from 1x1 to 3x3 blocks. Using $(l:items/amethyst)$(item)Amethyst Dust/$ on such a scroll will have it display the stroke order.", - "2": "In addition, I can also find so-called $(l:items/scroll)$(item)Ancient Scrolls/$ in the dungeons and strongholds of the world. These contain the stroke order of $(thing)Great Spells/$, powerful magicks rumored to be too powerful for the hands and minds of mortals...$(br2)If those \"mortals\" couldn't cast them, I'm not sure they deserve to know them.", - "crafting.desc": "$(italic)I write upon clean white parchment with a sharp quill and the blood of my students, divining their secrets./$", + "1": "", + "2": "", + "crafting.desc": "", }, slate: { - "1": "$(l:items/slate)$(item)Slates/$ are similar to $(l:items/scroll)$(item)Scrolls/$; I can copy a pattern to them and place them in the world to display the pattern.$(br2)However, I have read vague tales of grand assemblies of $(l:items/slate)$(item)Slates/$, used to cast $(l:greatwork/spellcircles)$(thing)great rituals/$ more powerful than can be handled by a $(l:items/staff)$(item)Staff/$.", - "2": "Perhaps this knowledge will be revealed to me with time. But for now, I suppose they make a quaint piece of decor.$(br2)At the least, they can be placed on any side of a block, unlike $(l:items/scroll)$(item)Scrolls/$.", - "crafting.desc": "$(italic)This is the letter \"a.\" Learn it./$", - "3": "I'm also aware of other types of $(l:items/slate)$(item)Slates/$, slates that do not contain patterns but seem to be inlaid with other ... strange ... oddities. It hurts my brain to think about them, as if my thoughts get bent around their designs, following their pathways, bending and wefting through their labyrinthine depths, through and through and through channeled through and processed and--$(br2)... I almost lost myself. Maybe I should postpone my studies of those.", + "1": "", + "2": "", + "crafting.desc": "", + "3": "", }, hexcasting: { "1": "Although the flexibility of casting _Hexes \"on the go\" with my $(l:items/staff)$(item)Staff/$ is quite helpful, it's a huge pain to have to wave it around repeatedly just to accomplish a basic task. If I could save a common spell for later reuse, it would simplify things a lot-- and allow me to share my _Hexes with friends, too.", - "2": "To do this, I can craft one of three types of magic items: $(l:items/hexcasting)$(item)Cyphers/$, $(l:items/hexcasting)$(item)Trinkets/$, or $(l:items/hexcasting)$(item)Artifacts/$. All of them hold the patterns of a given _Hex inside, along with a small battery containing _media.$(br2)Simply holding one and pressing $(thing)$(k:use)/$ will cast the patterns inside, as if the holder had cast them out of a staff, using its internal battery.", - "3": "Each item has its own quirks:$(br2)$(l:items/hexcasting)$(item)Cyphers/$ are fragile, destroyed after their internal _media reserves are gone, and $(italic)cannot/$ be recharged;$(br2)$(l:items/hexcasting)$(item)Trinkets/$ can be cast as much as the holder likes, as long as there's enough _media left, but become useless afterwards until recharged;", + "2": "", + "3": "", "4": "$(l:items/hexcasting)$(item)Artifacts/$ are the most powerful of all-- after their _media is depleted, they can use $(l:items/amethyst)$(item)Amethyst/$ from the holder's inventory to pay for the _Hex, just as I do when casting with a $(l:items/staff)$(item)Staff/$. Of course, this also means the spell might consume their mind if there's not enough $(l:items/amethyst)$(item)Amethyst/$.$(br2)Once I've made an empty magic item in a mundane crafting bench, I infuse the _Hex into it using (what else but) a spell appropriate to the item. $(l:patterns/spells/hexcasting)I've catalogued the patterns here./$", "5": "Each infusion spell requires an entity and a list of patterns on the stack. The entity must be a _media-holding item entity (i.e. $(l:items/amethyst)$(item)amethyst/$ crystals, dropped on the ground); the entity is consumed and forms the battery.$(br2)Usefully, it seems that the _media in the battery is not consumed in chunks as it is when casting with a $(l:items/staff)$(item)Staff/$-- rather, the _media \"melts down\" into one continuous pool. Thus, if I store a _Hex that only costs one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of media, a $(l:items/amethyst)$(item)Charged Crystal/$ used as the battery will allow me to cast it 10 times.", - "crafting.desc": "$(italic)We have a saying in our field: \"Magic isn't\". It doesn't \"just work,\" it doesn't respond to your thoughts, you can't throw fireballs or create a roast dinner from thin air or turn a bunch of muggers into frogs and snails./$", + "crafting.desc": "", }, phials: { - "1": "I find it quite ... irritating, how Nature refuses to give me change for my work. If all I have on hand is $(l:items/amethyst)$(item)Charged Amethyst/$, even the tiniest $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$ will consume the entire crystal, wasting the remaining _media.$(br2)Fortunately, it seems I've found a way to somewhat allay this problem.", - "2": "I've found old scrolls describing a $(item)Glass Bottle/$ infused with _media. When casting _Hexes, my spells would then draw _media out of the phial. The liquid form of the _media would let me take exact change, so to speak; nothing would be wasted. It's quite like the internal battery of a $(l:items/hexcasting)$(item)Trinket/$, or similar; I can even $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ them in the same manner.", - "3": "Unfortunately, the art of actually $(italic)making/$ the things seems to have been lost to time. I've found a $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)hint at the pattern used to craft it/$, but the technique is irritatingly elusive, and I can't seem to do it successfully. I suspect I will figure it out with study and practice, though. For now, I will simply deal with the wasted _media...$(br2)But I won't settle for it forever.", - desc: "$(italic)Drink the milk./$", + "1": "", + "2": "", + "3": "", + desc: "", }, potions: { - "1": "Peering through a $(l:items/lens)$(item)Scrying Lens/$ allows me to fit more patterns onto my casting grid. But what if I want to improve my casting even further? Alchemy has an answer.$(br2)By adding a pinch of Amethyst Dust to an $(item)Awkward Potion/$, I can create a brew that increases the size of my grid in much the same way as the Lens. I can even use both at once for the ultimate grid!", + "1": "", "2": "The Poción de claridad can be extended, strengthened, and modified like any other potion.$(br2)It can also be corrupted with a $(item)Fermented Spider Eye/$ to produce a variant with the opposite effect. This may be useful for dealing with enemy casters.", "effects.header": "claridad and nublado", }, pigments: { - "1": "The old practitioners of my art sometimes identified themselves by a color, emblematic of them and their _Hexes. Although their names have faded, their colors remain. It seems a special kind of pigment, offered to Nature in the right way, would \"[...] paint one's thoughts in a manner pleasing to Nature, inducing a miraculous change in personal colour.\"", - "2": "I'm not certain on the specifics, but I believe I have isolated the formulae for many different colors and blends of pigments. To apply a pigment, I hold it in one hand and cast $(l:patterns/spells/colorize)$(action)Internalize Pigment/$ with the other; this consumes the pigment.$(br2)The pigments seem to affect the color of the sparks of _media emitted when I cast a _Hex and my $(l:patterns/spells/sentinels)$(thing)sentinel/$, but I don't doubt that the color will show up elsewhere.", - "colored.crafting.header": "Chromatic Pigments", - "colored.crafting.desc": "Pigments in all the colors of the rainbow.", + "1": "", + "2": "", + "colored.crafting.header": "", + "colored.crafting.desc": "", special: "And finally, a pair of special pigments. $(item)Soulglimmer Pigment/$ shines with colors wholly unique to me, and $(item)Vacant Pigment/$ restores my original purplish-orange spread.$(br2)$(italic)And all the colors I am inside have not been invented yet./$", }, edified: { - "1": "By infusing _media into a sapling via the use of $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Edify Sapling/$, I can create what is called an $(l:items/edified)$(thing)Edified Tree/$. They tend to be tall and pointy, with ridged bark and wood that grows in a strange spiral pattern. Their leaves come in three pretty colors.", - "2": "I would assume the wood would have some properties relevant to _Hexcasting. But, if it does, I cannot seem to find them. For all intents and purposes it appears to be just wood, albeit of a very strange color.$(br2)I suppose for now I will use it for decoration; the full suite of standard wood blocks can be crafted from them.$(br2)Of course, I can strip them with an axe as well.", - "crafting.desc": "$(italic)Their smooth trunks, with white bark, gave the effect of enormous columns sustaining the weight of an immense foliage, full of shade and silence./$", + "1": "", + "2": "", + "crafting.desc": "", }, jeweler_hammer: { - "1": "After being careless with the sources of my _media one too many times, I have devised a tool to work around my clumsiness.$(br2)Using the delicate nature of crystallized _media as a fixture for a pickaxe, I can create the $(l:items/jeweler_hammer)$(item)Jeweler's Hammer/$. It acts like an $(item)Iron Pickaxe/$, for the most part, but can't break anything that takes up an entire block's space.", - "crafting.desc": "$(italic)Carefully, she cracked the half ruby, letting the spren escape./$", + "1": "", + "crafting.desc": "", }, decoration: { - "1": "In the course of my studies I have discovered some building blocks and trifles that I may find aesthetically pleasing. I've compiled the methods of making them here.", - "ancient_scroll.crafting.desc": "Brown dye works well enough to simulate the look of an $(l:items/scroll)$(item)ancient scroll/$.", - "tiles.crafting.desc": "$(l:items/decoration)$(item)Amethyst Tiles/$ can also be made in a Stonecutter.$(br2)$(l:items/decoration)$(item)Blocks of Amethyst Dust/$ (next page) will fall like sand.", - "sconce.crafting.desc": "$(l:items/decoration)$(item)Amethyst Sconces/$ emit light and particles, as well as a pleasing chiming sound.", + "1": "", + "ancient_scroll.crafting.desc": "", + "tiles.crafting.desc": "", + "sconce.crafting.desc": "", }, the_work: { - "1": "I have seen so many things. Unspeakable things. Innumerable things. I could write three words and turn my mind inside-out and smear my brains across the shadowed walls of my skull to decay into fluff and nothing.", - "2": "I have seen staccato-needle patterns and acid-etched schematics written on the inside of my eyelids. They smolder there-- they dance, they taunt, they $(italic)ache/$. I'm possessed by an intense $(italic)need/$ to draw them, create them. Form them. Liberate them from the gluey shackles of my mortal mind-- present them in their Glory to the world for all to see.$(p)All shall see.$(p)All will see.", + "1": "", + "2": "", }, brainsweeping: { - "1": "A secret was revealed to me. I saw it. I cannot forget its horror. The idea skitters across my brain.$(br2)I believed-- oh, foolishly, I $(italic)believed/$ --that _Media is the spare energy left over by thought. But now I $(italic)know/$ what it is: the energy $(italic)of/$ thought.", - "2": "It is produced by thinking sentience and allows sentience to think. It is a knot tying that braids into its own string. The Entity I naively anthromorphized as Nature is simply a grand such tangle, or perhaps the set of all tangles, or ... if I think it hurts I have so many synapses and all of them can think pain at once ALL OF THEM CAN SEE$(br2)I am not holding on. My notes. Quickly.", + "1": "", + "2": "", "3": "The villagers of this world have enough consciousness left to be extracted. Place it into a block, warp it, change it. Intricate patterns caused by different patterns of thought, the abstract neural pathways of their jobs and lives mapped into the cold physic of solid atoms.$(br2)This is what $(l:patterns/great_spells/brainsweep)$(action)Desollar mente/$ does, the extraction. Target the villager entity and the destination block. Ten $(l:items/amethyst)$(item)Charged Amethyst/$ for this perversion of will.", - budding_amethyst: "And an application. For this flaying, any sort of villager will do, if it has developed enough. Other recipes require more specific types. NO MORE must I descend into the hellish earth for my _media.", + budding_amethyst: "", }, spellcircles: { - "1": "I KNOW what the $(l:items/slate)$(item)slates/$ are for. The grand assemblies lost to time. The patterns scribed on them can be actuated in sequence, automatically. Thought and power ricocheting through, one by one by one by one by one by through and through and THROUGH AND -- I must not I must not I should know better than to think that way.", + "1": "", "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other blocks suitable for the energies, one by one, collecting any patterns it finds. Once the wave circles back around to the $(l:greatwork/impetus)$(item)Impetus/$, all the patterns encountered are cast in order.$(br2)The direction the _media exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", - "3": "As a result, the outline of the spell \"circle\" may be any closed shape, concave or convex, and it may face any direction. In fact, with the application of certain other blocks it is possible to make a spell circle that spans all three dimensions. I doubt such an oddity has very much use, but I must allocate myself a bit of vapid levity to encourage my crude mind to continue my work.", - "4": "Miracle of miracles, the circle will withdraw _media neither from my inventory nor my mind. Instead, crystallized shards of _media must be provided to the $(l:greatwork/impetus)$(item)Impetus/$ via hopper, or other such artifice.$(br2)The application of a $(l:items/lens)$(item)Scrying Lens/$ will show how much _media is inside an $(l:greatwork/impetus)$(item)Impetus/$, in units of dust.", - "5": "However, a spell cast from a circle does have one major limitation: it is unable to affect anything outside of the circle's bounds. That is, it cannot interact with anything outside of the cuboid of minimum size which encloses every block composing it (so a concave spell circle can still affect things in the concavity).", - "6": "There is also a limit on the number of blocks the wave can travel through before it disintegrates, but it is large enough I doubt I will have any trouble.$(br2)Conversely, there are some actions that can only be cast from a circle. Fortunately, none of them are spells; they all seem to deal with components of the circle itself. My notes on the subject are $(l:patterns/circle)here/$.", + "3": "", + "4": "", + "5": "", + "6": "", "7": "I also found a sketch of a spell circle used by the ancients buried in my notes. Facing this page is my (admittedly poor) copy of it.$(br2)The patterns there would have been executed counter-clockwise, starting with $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ and ending with $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Greater Teleport/$.", - "teleport_circle.title": "Teleportation Circle", + "teleport_circle.title": "", }, impetus: { - "1": "The fluctuation of _media required to actuate a spell circle is complex. Even the mortal with sharpest eyes and steadiest hands could not serve as an $(l:greatwork/impetus)$(item)Impetus/$ and weave _media into the self-sustaining oroboros required.$(br2)The problem is that the mind is too full of other useless $(italics)garbage/$.", - "2": "At a ... metaphysical level-- I must be careful with these thoughts, I cannot lose myself, I have become too valuable --moving _media moves the mind, and the mind must be moved for the process to work. But, the mind is simply too $(italic)heavy/$ with other thoughts to move nimbly enough.$(br2)It is like an artisan trying to repair a watch while wearing mittens.", - "3": "There are several solutions to this conundrum: through meditative techniques one can learn to blank the mind, although I am not certain a mind free enough to actuate a circle can concentrate hard enough to do the motions.$(br2)Certain unsavory compounds can create a similar effect, but I know nothing of them and do not plan to learn. I must not rely on the chemicals of my brain.", - "4": "The solution I aim for, then, is to specialize a mind. Remove it from the tyranny of nerves, clip all outputs but delicate splays of _media-manipulating apparati, cauterize all inputs but the signal to start its work.$(br2)The process of $(l:greatwork/brainsweeping)$(action)mindflaying/$ I am now familiar with will do excellently; the mind of a villager is complex enough to do the work, but not so complex as to resist its reformation.", - empty_impetus: "First, the cradle. Although it does not work as an $(l:greatwork/impetus)$(item)Impetus/$, the flow of _media in a circle will only exit out the side pointed to by the arrows. This allows me to change the plane in which the wave flows, for example.", - impetus_rightclick: "Then, to transpose the mind. Villagers of different professions will lend different actuation conditions to the resulting $(l:greatwork/impetus)$(item)Impetus/$. A $(l:greatwork/impetus)$(item)Toolsmith Impetus/$ activates on a simple $(k:use).", + "1": "", + "2": "", + "3": "", + "4": "", + empty_impetus: "", + impetus_rightclick: "", impetus_storedplayer: { - "1": "A $(l:greatwork/impetus)$(item)Cleric Impetus/$ activates when receiving a redstone signal. It may be bound to a player by using an item with a reference to that player, like a $(l:items/focus)$(item)Focus/$, on the block.", - "2": "Peculiarly to this $(l:greatwork/impetus)$(item)Impetus/$, the bound player, as well as a small region around them, are always accessible to the spell circle. It's as if they were standing within the bounds of the circle, no matter how far away they might stand.$(br2)The bound player is shown when looking at a $(l:greatwork/impetus)$(item)Cleric Impetus/$ through a $(l:items/lens)$(item)Scrying Lens/$.", + "1": "", + "2": "", }, - impetus_look: "A $(l:greatwork/impetus)$(item)Fletcher Impetus/$ activates when looked at for a short time.", + impetus_look: "", }, directrix: { - "1": "Simpler than the task of creating a self-sustaining wave of _media is the task of directing it. Ordinarily the wave disintegrates when coming upon a crossroads, but with a mind to guide it, an exit direction can be controlled.$(br2)This manipulation is not nearly so fine as the delicacy of actuating a spell circle. In fact, it might be possible to do it by hand... but the packaged minds I have access to now would be so very convenient.", - "2": "A $(l:greatwork/directrix)$(item)Directrix/$ accepts a wave of _media and determines to which of the arrows it will exit from, depending on the villager mind inside.$(br2)I am not certain if this idea was bestowed upon me, or if my mind is bent around the barrier enough to splint off its own ideas now... but if the idea came from my own mind, if I thought it, can it be said it was bestowed? The brain is a vessel for the mind and the mind is a vessel for ideas and the ideas vessel thought and thought sees all and knows all-- I MUST N O T", - empty_directrix: "Firstly, a design for the cradle ... although, perhaps \"substrate\" would be more accurate a word. Without a mind guiding it, the output direction is determined by microscopic fluctuations in the _media wave and surroundings, making it effectively random.", - directrix_redstone: "A $(l:greatwork/directrix)$(item)Mason Directrix/$ switches output side based on a redstone signal. Without a signal, the exit is the _media-color side; with a signal, the exit is the redstone-color side.", + "1": "", + "2": "", + empty_directrix: "", + directrix_redstone: "", directrix_boolean: "A $(l:greatwork/directrix)$(item)Shepherd Directrix/$ switches output side based on a boolean on the stack. A $(thing)True/$ makes the wave exit from the back, a $(thing)False/$ from the front.", }, akashiclib: { - "1": "I KNOW SO MUCH it is ONLY RIGHT to have a place to store it all. Information can be stored in books but it is oh so so so so $(italic)slow/$ to write by hand and read by eye. I demand BETTER. And so I shall MAKE better.$(br2)... I am getting worse ... do not know if I have time to write everything bursting through my head before expiring.", + "1": "", "2": "The library. Here. My plans.$(br2)Like how patterns are associated with actions, I can associate my own patterns with iotas in any way I choose. An $(l:greatwork/akashiclib)$(item)Akashic Record/$ controls the library, and each $(l:greatwork/akashiclib)$(item)Akashic Bookshelf/$ stores one pattern mapped to one iota. These must all be directly connected together, touching, within 32 blocks. An $(l:greatwork/akashiclib)$(item)Akashic Ligature/$ doesn't do anything but count as a connecting block, to extend the size of my library.", - akashic_record: "Allocating and assigning patterns is simple but oh so boring. I have better things to do. I will need a mind well-used to its work for the extraction to stay sound.", - "3": "Then to operate the library is simple, the patterns are routed through the librarian and it looks them up and returns the iota to you. Two actions do the work. $(l:patterns/akashic_patterns)Notes here/$.$(br2)Using an empty $(l:items/scroll)$(item)scroll/$ on a bookshelf copies the pattern there onto the $(l:items/scroll)$(item)scroll/$. Sneaking and using an empty hand clears the datum in the shelf.", + akashic_record: "", + "3": "", }, quenching_allays: { - "1": "THEY ARE BITS OF MEDIA. How did I not see it sooner? They are -- as I am a heap of flesh with a scrap, blessed with a scrap of thought, an Allay is a self-sustaining quarrel of media pinned to a scrap of flesh. It explains everything -- their propensity for media, their response to music, I SEE NOW, HOW did the ones before NOT?", - "2": "And given this it is only RIGHT I conquer their peculiar minds -- their peculiar selves -- that is all they are, a mind, a self, a coda. Something about their phase speaks to me. I can... I can compress _media with them, overlay two wends of thought in one space, physical and cognitive, all and once.$(br2)Somehow, the process produces _media of its own. How? Perhaps -- perhaps MY work, the process of doing it --", - "3": "It matters not. I matter not. They matter not, all that matters is what it does. And this is it.$(br2)It must hurt so very much.$(br2)Ten $(l:items/amethyst)$(item)Amethyst Dust/$ is the price to enact such a perverse ritual.", - "4": "The product is fragile. Breaking it shatters it into pieces, with $(thing)Fortune/$ increasing the yield... if I wish the block itself I need a silken touch.$(br2)The produced shards are worth thrice an $(l:items/amethyst)$(item)Charged Amethyst Crystal/$ apiece. The block itself is worth four of the shards.", - "5": "They are mercurial, they seem to twist and wink under my fingers, and by giving them a mentor in another form of _media they may be coerced into its shape, in an equivalent exchange of _media.", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", }, - "fanciful_staves.1": "It is only right as I shed the husk of ignorance I replace my tools, my palm-polished staves. These new constructions of mine have no additional properties -- but they are so glorious, oh so Glorious... They match the radiance winking at the corners of my sight.", + "fanciful_staves.1": "", readers_guide: { - "1": "I've divided all the valid patterns I've found into sections based on what they do, more or less. I've written down the stroke order of the patterns as well, if I managed to find it in my studies, with the start of the pattern marked with a red dot.$(br2)If an action is cast by multiple patterns, as is the case with some, I'll write them all side-by-side.", - "2": "For a few patterns, however, I was $(italic)not/$ able to find the stroke order, just the shape. I suspect the order to draw them in are out there, locked away in the ancient libraries and dungeons of the world.$(br2)In such cases I just draw the pattern without any information on the order to draw it in.", - "3": "I also write the types of iota that the action will consume or modify, a \"→\", and the types of iota the action will create.$(p)For example, \"$(n)vector, number/$ → $(n)vector/$\" means the action will remove a vector and a number from the top of the stack, and then add a vector; or, put another way, will remove a number from the stack, and then modify the vector at the top of the stack. (The number needs to be on the top of the stack, with the vector right below it.)", - "4": "\"→ $(n)entity/$\" means it'll just push an entity. \"$(n)entity, vector/$ →\" means it removes an entity and a vector, and doesn't push anything.$(br2)Finally, if I find the little dot marking the stroke order too slow or confusing, I can press $(thing)Control/Command/$ to display a gradient, where the start of the pattern is darkest and the end is lightest. This works on scrolls and when casting, too!", + "1": "", + "2": "", + "3": "", + "4": "", }, basics_pattern: { get_caster: "Adds me, the caster, to the stack.", - "entity_pos/eye": "Transforms an entity on the stack into the position of its eyes. I should probably use this on myself.", - "entity_pos/foot": "Transforms an entity on the stack into the position it is standing. I should probably use this on other entities.", - get_entity_look: "Transforms an entity on the stack into the direction it's looking in, as a unit vector.", - print: "Displays the top iota of the stack to me.", + "entity_pos/eye": "", + "entity_pos/foot": "", + get_entity_look: "", + print: "", raycast: { - "1": "Combines two vectors (a position and a direction) into the answer to the question: If I stood at the position and looked in the direction, what block would I be looking at? Costs a negligible amount of _media.", + "1": "", "2": "If it doesn't hit anything, the vectors will combine into $(l:casting/influences)$(thing)Null/$.$(br2)A common sequence of patterns, the so-called \"raycast mantra,\" is $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade Purification/$, $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$. Together, they return the vector position of the block I am looking at.", }, "raycast/axis": { - "1": "Like $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$, but instead returns a vector representing the answer to the question: Which $(italic)side/$ of the block am I looking at? Costs a negligible amount of _media.", - "2": "More specifically, it returns the $(italic)normal vector/$ of the face hit, or a unit vector pointing perpendicular to the face.$(li)If I am looking at a floor, it will return (0, 1, 0).$(li)If I am looking at the south face of a block, it will return (0, 0, 1).", + "1": "", + "2": "", }, - "raycast/entity": "Like $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$, but instead returns the $(italic)entity/$ I am looking at. Costs a negligible amount of _media.", - get_entity_height: "Transforms an entity on the stack into its height.", - get_entity_velocity: "Transforms an entity on the stack into the direction in which it's moving, with the speed of that movement as that direction's magnitude.", + "raycast/entity": "", + get_entity_height: "", + get_entity_velocity: "", }, numbers: { - "1": "Irritatingly, there is no easy way to draw numbers. Here is the method Nature deigned to give us.", - "2": "First, I draw one of the two shapes shown on the other page. Next, the $(italic)angles/$ following will modify a running count starting at 0.$(li)Forward: Add 1$(li)Left: Add 5$(li)Right: Add 10$(li)Sharp Left: Multiply by 2$(li)Sharp Right: Divide by 2.$(br)The clockwise version of the pattern, on the right of the other page, will negate the value at the very end. (The left-hand counter-clockwise version keeps the number positive).$(p)Once I finish drawing, the number's pushed to the top of the stack.", + "1": "", + "2": "", example: { - "10.header": "Example 1", - "10": "This pattern pushes 10.", - "7.header": "Example 2", - "7": "This pattern pushes 7: 5 + 1 + 1.", - "-32.header": "Example 3", - "-32": "This pattern pushes -32: negate 1 + 5 + 10 * 2.", - "4.5.header": "Example 4", - "4.5": "This pattern pushes 4.5: 5 / 2 + 1 + 1.", + "10.header": "", + "10": "", + "7.header": "", + "7": "", + "-32.header": "", + "-32": "", + "4.5.header": "", + "4.5": "", }, - "3": "In certain cases it might be easier to just use an $(l:items/abacus)$(item)Abacus/$. But, it's worth knowing the \"proper\" way to do things.", + "3": "", }, math: { - numvec: "Many mathematical operations function on both numbers and vectors. Such arguments are written as \"num|vec\".", - "add.1": "Perform addition.", + numvec: "", + "add.1": "", "add.2": "As such:$(li)With two numbers at the top of the stack, combines them into their sum.$(li)With a number and a vector, removes the number from the stack and adds it to each element of the vector.$(li)With two vectors, combines them by summing corresponding components into a new vector (i.e. [1, 2, 3] + [0, 4, -1] = [1, 6, 2]).", - "sub.1": "Perform subtraction.", - "sub.2": "As such:$(li)With two numbers at the top of the stack, combines them into their difference.$(li)With a number and a vector, removes the number from the stack and subtracts it from each element of the vector.$(li)With two vectors, combines them by subtracting each component.$(br2)In all cases, the top of the stack or its components are subtracted $(italic)from/$ the second-from-the-top.", - "mul.1": "Perform multiplication or the dot product.", - "mul.2": "As such:$(li)With two numbers, combines them into their product.$(li)With a number and a vector, removes the number from the stack and multiplies each component of the vector by that number.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)dot product/$.", - "div.1": "Perform division or the cross product.", + "sub.1": "", + "sub.2": "", + "mul.1": "", + "mul.2": "", + "div.1": "", "div.2": "As such:$(li)With two numbers, combines them into their quotient.$(li)With a number and a vector, removes the number and divides it by each element of the vector.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)cross product/$.$(br2)In the first and second cases, the top of the stack or its components comprise the dividend, and the second-from-the-top or its components are the divisor.$(p)WARNING: Never divide by zero!", - "abs.1": "Compute the absolute value or length.", - "abs.2": "Replaces a number with its absolute value, or a vector with its length.", - "pow.1": "Perform exponentiation or vector projection.", + "abs.1": "", + "abs.2": "", + "pow.1": "", "pow.2": "With two numbers, combines them by raising the first to the power of the second.$(li)With a number and a vector, removes the number and raises each component of the vector to the number's power.$(li)With two vectors, combines them into the $(l:https://en.wikipedia.org/wiki/Vector_projection)vector projection/$ of the top of the stack onto the second-from-the-top.$(br2)In the first and second cases, the first argument or its components are the base, and the second argument or its components are the exponent.", - floor: "\"Floors\" a number, cutting off the fractional component and leaving an integer value. If passed a vector, instead floors each of its components.", - ceil: "\"Ceilings\" a number, raising it to the next integer value if it has a fractional component. If passed a vector, instead ceils each of its components.", - construct_vec: "Combine three numbers at the top of the stack into a vector's X, Y, and Z components (bottom to top).", - deconstruct_vec: "Split a vector into its X, Y, and Z components (bottom to top).", - modulo: "Takes the modulus of two numbers. This is the amount $(italics)remaining/$ after division - for example, 5 %% 2 is 1, and 5 %% 3 is 2. When applied on vectors, performs the above operation elementwise.", - coerce_axial: "For a vector, coerce it to its nearest axial direction, a unit vector. For a number, return the sign of the number; 1 if positive, -1 if negative. In both cases, zero is unaffected.", - random: "Creates a random number between 0 and 1.", + floor: "", + ceil: "", + construct_vec: "", + deconstruct_vec: "", + modulo: "", + coerce_axial: "", + random: "", }, advanced_math: { - sin: "Takes the sine of an angle in radians, yielding the vertical component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - cos: "Takes the cosine of an angle in radians, yielding the horizontal component of that angle drawn on a unit circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - tan: "Takes the tangent of an angle in radians, yielding the slope of that angle drawn on a circle. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arcsin: "Takes the inverse sine of a value with absolute value 1 or less, yielding the angle whose sine is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arccos: "Takes the inverse cosine of a value with absolute value 1 or less, yielding the angle whose cosine is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arctan: "Takes the inverse tangent of a value, yielding the angle whose tangent is that value. Related to the values of $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ and $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arctan2: "Takes the inverse tangent of a Y and X value, yielding the angle between the X-axis and a line from the origin to that point.", - logarithm: "Removes the number at the top of the stack, then takes the logarithm of the number at the top using the other number as its base. Related to the value of $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$.", + sin: "", + cos: "", + tan: "", + arcsin: "", + arccos: "", + arctan: "", + arctan2: "", + logarithm: "", }, sets: { - numlist: "Set operations are odd, in that some of them can accept two numbers or two lists, but not a combination thereof. Such arguments will be written as \"(num, num)|(list, list)\".$(br2)When numbers are used in those operations, they are being used as so-called binary \"bitsets\", lists of 1 and 0, true and false, \"on\" and \"off\".", - "or.1": "Unifies two sets.", - "or.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit in either bitset.$(li)With two lists, this creates a list of every element from the first list, plus every element from the second list that is not in the first list. This is somewhat similar to $(l:patterns/lists#hexcasting:add)$(action)Additive Distillation/$.", - "and.1": "Takes the intersection of two sets.", - "and.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)both/$ bitsets.$(li)With two lists, this creates a list of every element from the first list that is also in the second list.", - "xor.1": "Takes the exclusive disjunction of two sets.", - "xor.2": "As such:$(li)With two numbers at the top of the stack, combines them into a bitset containing every \"on\" bit present in $(italics)exactly one/$ of the bitsets.$(li)With two lists, this creates a list of every element in both lists that is $(italics)not/$ in the other list.", - not: "Takes the inversion of a bitset, changing all \"on\" bits to \"off\" and vice versa. In my experience, this will take the form of that number negated and decreased by one. For example, 0 will become -1, and -100 will become 99.", - to_set: "Removes duplicate entries from a list.", + numlist: "", + "or.1": "", + "or.2": "", + "and.1": "", + "and.2": "", + "xor.1": "", + "xor.2": "", + not: "", + to_set: "", }, "consts.const/": { "null": "Adds the $(l:casting/influences)$(thing)Null/$ influence to the top of the stack.", - "true": "Adds $(thing)True/$ to the top of the stack.", - "false": "Adds $(thing)False/$ to the top of the stack.", + "true": "", + "false": "", "vec/": { x: "The left-hand counter-clockwise pattern adds [1, 0, 0] to the stack; the right-hand clockwise pattern adds [-1, 0, 0].", y: "The left-hand counter-clockwise pattern adds [0, 1, 0] to the stack; the right-hand clockwise pattern adds [0, -1, 0].", @@ -1038,49 +1038,49 @@ "0": "Adds [0, 0, 0] to the stack.", }, "double/": { - tau: "Adds τ, the radial representation of a complete circle, to the stack.", - pi: "Adds π, the radial representation of half a circle, to the stack.", - e: "Adds $(italic)e/$, the base of natural logarithms, to the stack.", + tau: "", + pi: "", + e: "", }, }, stackmanip: { - "pseudo-novice.title": "Novice's Gambit", - "pseudo-novice": "Removes the first iota from the stack.$(br2)This seems to be a special case of $(l:patterns/stackmanip#hexcasting:mask)$(action)Bookkeeper's Gambit/$.", - swap: "Swaps the top two iotas of the stack.", - rotate: "Yanks the iota third from the top of the stack to the top. [0, 1, 2] becomes [1, 2, 0].", - rotate_reverse: "Yanks the top iota to the third position. [0, 1, 2] becomes [2, 0, 1].", - duplicate: "Duplicates the top iota of the stack.", - over: "Copy the second-to-last iota of the stack to the top. [0, 1] becomes [0, 1, 0].", - tuck: "Copy the top iota of the stack, then put it under the second iota. [0, 1] becomes [1, 0, 1].", - "2dup": "Copy the top two iotas of the stack. [0, 1] becomes [0, 1, 0, 1].", - stack_len: "Pushes the size of the stack as a number to the top of the stack. (For example, a stack of [0, 1] will become [0, 1, 2].)", - duplicate_n: "Removes the number at the top of the stack, then copies the top iota of the stack that number of times. (A count of 2 results in two of the iota on the stack, not three.)", - fisherman: "Grabs the element in the stack indexed by the number and brings it to the top. If the number is negative, instead moves the top element of the stack down that many elements.", - "fisherman/copy": "Like $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Fisherman's Gambit/$, but instead of moving the iota, copies it.", + "pseudo-novice.title": "", + "pseudo-novice": "", + swap: "", + rotate: "", + rotate_reverse: "", + duplicate: "", + over: "", + tuck: "", + "2dup": "", + stack_len: "", + duplicate_n: "", + fisherman: "", + "fisherman/copy": "", mask: { - "1": "An infinite family of actions that keep or remove elements at the top of the stack based on the sequence of dips and lines.", - "2": "Assuming that I draw a Bookkeeper's Gambit pattern left-to-right, the number of iotas the action will require is determined by the horizontal distance covered by the pattern. From deepest in the stack to shallowest, a flat line will keep the iota, whereas a triangle dipping down will remove it.$(br2)If my stack contains $(italic)0, 1, 2/$ from deepest to shallowest, drawing the first pattern opposite will give me $(italic)1/$, the second will give me $(italic)0/$, and the third will give me $(italic)0, 2/$ (the 0 at the bottom is left untouched).", + "1": "", + "2": "", }, swizzle: { - "1": "Rearranges the top elements of the stack based on the given numerical code, which is the index of the permutation wanted.", - "2": "Although I can't pretend to know the mathematics behind calculating this permutation code, I have managed to dig up an extensive chart of them, enumerating all permutations of up to six elements.$(br2)If I wish to do further study, the key word is \"Lehmer Code.\"", + "1": "", + "2": "", link: "Table of Codes", }, }, logic: { bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(l:casting/influences)$(thing)Null/$, False, and the empty list become False; everything else becomes True.", - bool_to_number: "Convert a boolean to a number; True becomes $(thing)1/$, and False becomes $(thing)0/$.", - not: "If the argument is True, return False; if it is False, return True.", - or: "Returns True if at least one of the arguments are True; otherwise returns False.", - and: "Returns True if both arguments are true; otherwise returns False.", - xor: "Returns True if exactly one of the arguments is true; otherwise returns False.", - "if": "If the first argument is True, keeps the second and discards the third; otherwise discards the second and keeps the third.", - equals: "If the first argument equals the second (within a small tolerance), return True. Otherwise, return False.", - not_equals: "If the first argument does not equal the second (outside a small tolerance), return True. Otherwise, return False.", - greater: "If the first argument is greater than the second, return True. Otherwise, return False.", - less: "If the first argument is less than the second, return True. Otherwise, return False.", - greater_eq: "If the first argument is greater than or equal to the second, return True. Otherwise, return False.", - less_eq: "If the first argument is less than or equal to the second, return True. Otherwise, return False.", + bool_to_number: "", + not: "", + or: "", + and: "", + xor: "", + "if": "", + equals: "", + not_equals: "", + greater: "", + less: "", + greater_eq: "", + less_eq: "", }, entities: { get_entity: "Transform the position on the stack into the entity at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", @@ -1091,204 +1091,204 @@ player: "Transform the position on the stack into the player at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", living: "Transform the position on the stack into the living creature at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", }, - zone_entity: "Take a position and maximum distance on the stack, and combine them into a list of all entities near the position.", + zone_entity: "", "zone_entity/": { - animal: "Take a position and maximum distance on the stack, and combine them into a list of animals near the position.", - not_animal: "Take a position and maximum distance on the stack, and combine them into a list of non-animal entities near the position.", - monster: "Take a position and maximum distance on the stack, and combine them into a list of monsters near the position.", - not_monster: "Take a position and maximum distance on the stack, and combine them into a list of non-monster entities near the position.", - item: "Take a position and maximum distance on the stack, and combine them into a list of dropped items near the position.", - not_item: "Take a position and maximum distance on the stack, and combine them into a list of non-dropped-item entities near the position.", - player: "Take a position and maximum distance on the stack, and combine them into a list of players near the position.", - not_player: "Take a position and maximum distance on the stack, and combine them into a list of non-player characters near the position.", - living: "Take a position and maximum distance on the stack, and combine them into a list of living creatures near the position.", - not_living: "Take a position and maximum distance on the stack, and combine them into a list of non-living entities near the position.", + animal: "", + not_animal: "", + monster: "", + not_monster: "", + item: "", + not_item: "", + player: "", + not_player: "", + living: "", + not_living: "", }, }, lists: { index: "Remove the number at the top of the stack, then replace the list at the top with the nth element of that list (where n is the number you removed). Replaces the list with $(l:casting/influences)$(thing)Null/$ if the number is out of bounds.", - slice: "Remove the two numbers at the top of the stack, then take a sublist of the list at the top of the stack between those indices, lower bound inclusive, upper bound exclusive. For example, the 0, 2 sublist of [0, 1, 2, 3, 4] would be [0, 1].", - append: "Remove the top of the stack, then add it to the end of the list at the top of the stack.", - unappend: "Remove the iota on the end of the list at the top of the stack, and add it to the top of the stack.", - add: "Remove the list at the top of the stack, then add all its elements to the end of the list at the top of the stack.", - empty_list: "Push an empty list to the top of the stack.", - singleton: "Remove the top of the stack, then push a list containing only that element.", - abs: "Remove the list at the top of the stack, then push the number of elements in the list to the stack.", - reverse: "Reverse the list at the top of the stack.", - index_of: "Remove the iota at the top of the stack, then replace the list at the top with the first index of that iota within the list (starting from 0). Replaces the list with -1 if the iota doesn't exist in the list.", - remove_from: "Remove the number at the top of the stack, then remove the nth element of the list at the top of the stack (where n is the number you removed).", - replace: "Remove the top iota of the stack and the number at the top, then set the nth element of the list at the top of the stack to that iota (where n is the number you removed). Does nothing if the number is out of bounds.", - last_n_list: "Remove $(italic)num/$ elements from the stack, then add them to a list at the top of the stack.", - splat: "Remove the list at the top of the stack, then push its contents to the stack.", - construct: "Remove the top iota, then add it as the first element to the list at the top of the stack.", - deconstruct: "Remove the first iota from the list at the top of the stack, then push that iota to the stack.", + slice: "", + append: "", + unappend: "", + add: "", + empty_list: "", + singleton: "", + abs: "", + reverse: "", + index_of: "", + remove_from: "", + replace: "", + last_n_list: "", + splat: "", + construct: "", + deconstruct: "", }, patterns_as_iotas: { - "1": "One of the many peculiarities of this art is that $(italic)patterns themselves/$ can act as iotas-- I can even put them onto my stack when casting.$(br2)This raises a fairly obvious question: how do I express them? If I simply drew a pattern, it would hardly tell Nature to add it to my stack-- rather, it would simply be matched to an action.", + "1": "", "2": "Fortunately, Nature has provided me with a set of $(l:casting/influences)influences/$ that I can use to work with patterns directly.$(br2)In short, $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ lets me add one pattern to the stack, and $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ let me add a whole list.", parens: { "1": "Drawing $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ makes my drawing of patterns act differently, for a time. Until I draw $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Retrospection/$, the patterns I draw are saved. Then, when I draw $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$, they are added to the stack as a list iota.", - "2": "If I draw another $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Introspection/$, it'll still be saved to the list, but I'll then have to draw $(italic)two/$ $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospections/$ to get back to normal casting.", + "2": "", }, undo: "Finally, if I make a mistake while drawing patterns inside $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Intro-/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ I can draw $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Evanition/$ to remove the last pattern that I drew from the pattern list that is being constructed.", }, readwrite: { - "1": "This section deals with the storage of $(thing)Iotas/$ in a more permanent medium. Nearly any iota can be stored to a suitable item, such as a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$, and read back later. Certain items, such as an $(l:items/abacus)$(item)Abacus/$, can only be read from.$(br2)Iotas are usually read and written from the other hand, but it is also possible to read and write with an item when it is sitting on the ground as an item entity, or when in an item frame.", - "2": "There may be other entities I can interact with in this way. For example, a $(l:items/scroll)$(item)Scroll/$ hung on the wall can have its pattern read off of it.$(br2)However, it seems I am unable to save a reference to another player, only me. I suppose an entity reference is similar to the idea of a True Name; perhaps Nature is helping to keep our Names out of the hands of enemies. If I want a friend to have my Name I can make a $(l:items/focus)$(item)Focus/$ for them.", - read: "Copy the iota stored in the item in my other hand and add it to the stack.", - write: "Remove the top iota from the stack, and save it into the item in my other hand.", - "read/entity": "Like $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$, but the iota is read out of an entity instead of my other hand.", - "write/entity": "Like $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Gambit/$, but the iota is written to an entity instead of my other hand.$(br2)Interestingly enough, it looks like I cannot write my own Name using this spell. I get a sense that I might be endangered if I could.", - readable: "If the item in my other hand holds an iota I can read, returns True. Otherwise, returns False.", - "readable/entity": "Like $(l:patterns/readwrite#hexcasting:readable)$(action)Auditor's Reflection/$, but the readability of an entity is checked instead of my other hand.", - writable: "If I could save an iota into the item in my other hand, returns True. Otherwise, returns False.", - "writable/entity": "Like $(l:patterns/readwrite#hexcasting:writable)$(action)Assessor's Reflection/$, but the writability of an entity is checked instead of my other hand.", - "local.title": "The Ravenmind", + "1": "", + "2": "", + read: "", + write: "", + "read/entity": "", + "write/entity": "", + readable: "", + "readable/entity": "", + writable: "", + "writable/entity": "", + "local.title": "", local: "Items are not the only places I can store information, however. I am also able to store that information in the _media of the _Hex itself, much like the stack, but separate. Texts refer to this as the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$. It holds a single iota, much like a $(l:items/focus)$(item)Focus/$, and begins with $(l:casting/influences)$(thing)Null/$ like the same. It is preserved between iterations of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$, but only lasts as long as the _Hex it's a part of. Once I stop casting, the value will be lost.", - "write/local": "Removes the top iota from the stack, and saves it to my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, storing it there until I stop casting the _Hex.", - "read/local": "Copy the iota out of my $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$, which I likely just wrote with $(l:patterns/readwrite#hexcasting:write/local)$(action)Huginn's Gambit/$.", + "write/local": "", + "read/local": "", }, meta: { "eval.1": "Remove a pattern or list of patterns from the stack, then cast them as if I had drawn them myself with my $(l:items/staff)$(item)Staff/$ (until a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ is encountered). If an iota is escaped with $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ or $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)its ilk/$, it will be pushed to the stack. Otherwise, non-patterns will fail.", "eval.2": "This can be $(italic)very/$ powerful in tandem with $(l:items/focus)$(item)Foci/$.$(br2)It also makes the bureaucracy of Nature a \"Turing-complete\" system, according to one esoteric scroll I found.$(br2)However, it seems there's a limit to how many times a _Hex can cast itself-- Nature doesn't look kindly on runaway spells!$(br2)In addition, with the energies of the patterns occurring without me to guide them, any percance will cause the remaining actions to become too unstable and immediately unravel.", "for_each.1": "Remove a list of patterns and a list from the stack, then cast the given pattern over each element of the second list.", "for_each.2": "More specifically, for each element in the second list, it will:$(li)Create a new stack, with everything on the current stack plus that element$(li)Draw all the patterns in the first list$(li)Save all the iotas remaining on the stack to a list$(br)Then, after all is said and done, pushes the list of saved iotas onto the main stack.$(br2)No wonder all the practitioners of this art go mad.", - "halt.1": "This pattern forcibly halts a _Hex. This is mostly useless on its own, as I could simply just stop writing patterns, or put down my staff.", - "halt.2": "But when combined with $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ or $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambits/$, it becomes $(italics)far/$ more interesting. Those patterns serve to 'contain' that halting, and rather than ending the entire _Hex, those gambits end instead. This can be used to cause $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$ not to operate on every iota it's given. An escape from the madness, as it were.", + "halt.1": "", + "halt.2": "", "eval/cc.1": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that a unique \"Jump\" iota is pushed to the stack beforehand. ", "eval/cc.2": "When the \"Jump\"-iota is executed, it'll skip the rest of the patterns and jump directly to the end of the pattern list.$(p)While this may seem redundant given $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ exists, this allows you to exit $(italic)nested/$ $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ invocations in a controlled way, where Charon only allows you to exit one.$(p)The \"Jump\" iota will apparently stay on the stack even after execution is finished... better not think about the implications of that.", "thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex.", }, circle_patterns: { - disclaimer: "These patterns must be cast from a $(l:greatwork/spellcircles)$(item)Spell Circle/$; trying to cast them through a $(l:items/staff)$(item)Staff/$ will fail rather spectacularly.", - "circle/impetus_pos": "Returns the position of the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle.", - "circle/impetus_dir": "Returns the direction the $(l:greatwork/impetus)$(item)Impetus/$ of this spell circle is facing as a unit vector.", - "circle/bounds/min": "Returns the position of the lower-north-west corner of the bounds of this spell circle.", - "circle/bounds/max": "Returns the position of the upper-south-east corner of the bounds of this spell circle.", + disclaimer: "", + "circle/impetus_pos": "", + "circle/impetus_dir": "", + "circle/bounds/min": "", + "circle/bounds/max": "", }, akashic_patterns: { - "akashic/read": "Read the iota associated with the given pattern out of the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This has no range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - "akashic/write": "Associate the iota with the given pattern in the $(l:greatwork/akashiclib)$(item)Akashic Library/$ with its $(l:greatwork/akashiclib)$(item)Record/$ at the given position. This $(italic)does/$ have a range limit. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + "akashic/read": "", + "akashic/write": "", }, itempicking: { - "1": "Certain spells, such as $(l:patterns/spells/blockworks#hexcasting:place_block)$(action)Place Block/$, will consume additional items from my inventory. When this happens, the spell will first look for the item to use, and then draw from all such items in my inventory.$(br2)This process is called \"picking an item.\"", - "2": "More specifically:$(li)First, the spell will search for the first valid item in my hotbar to the $(italic)right of my $(l:items/staff)$(item)staff/$, wrapping around at the right-hand side, and starting at the first slot if my $(l:items/staff)$(item)staff/$ is in my off-hand.$(li)Second, the spell will draw that item from as $(italic)far back in my inventory/$ as possible, prioritizing the main inventory over the hotbar.", - "3": "This way, I can keep a \"chooser\" item on my hotbar to tell the spell what to use, and fill the rest of my inventory with that item to keep the spell well-stocked.", + "1": "", + "2": "", + "3": "", }, basic_spell: { - "explode.1": "Remove a number and vector from the stack, then create an explosion at the given location with the given power.", - "explode.2": "A power of 3 is about as much as a Creeper's blast; 4 is about as much as a TNT blast. Nature refuses to give me a blast of more than 10 power, though.$(br2)Strangely, this explosion doesn't seem to harm me. Perhaps it's because $(italic)I/$ am the one exploding?$(br2)Costs a negligible amount at power 0, plus 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$ per point of explosion power.", - "explode.fire.1": "Remove a number and vector from the stack, then create a fiery explosion at the given location with the given power.", - "explode.fire.2": "Costs one $(l:items/amethyst)$(item)Amethyst Dust/$, plus about 3 extra $(l:items/amethyst)$(item)Amethyst Dust/$s per point of explosion power. Otherwise, the same as $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, except with fire.", - add_motion: "Remove an entity and direction from the stack, then give a shove to the given entity in the given direction. The strength of the impulse is determined by the length of the vector.$(br)Costs units of $(l:items/amethyst)$(item)Amethyst Dust/$ equal to the square of the length of the vector, plus one for every Impulse except the first targeting an entity.", - blink: "Remove an entity and length from the stack, then teleport the given entity along its look vector by the given length.$(br)Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$ per two blocks travelled.", - "beep.1": "Remove a vector and two numbers from the stack. Plays an $(thing)instrument/$ defined by the first number at the given location, with a $(thing)note/$ defined by the second number. Costs a negligible amount of _media.", - "beep.2": "There appear to be 16 different $(thing)instruments/$ and 25 different $(thing)notes/$. Both are indexed by zero.$(br2)These seem to be the same instruments I can produce with a $(item)Note Block/$, though the reason for each instrument's number being what it is eludes me.$(br2)Either way, I can find the numbers I need to use by inspecting a $(item)Note Block/$ through a $(l:items/lens)$(item)Scrying Lens/$.", + "explode.1": "", + "explode.2": "", + "explode.fire.1": "", + "explode.fire.2": "", + add_motion: "", + blink: "", + "beep.1": "", + "beep.2": "", }, blockworks: { - place_block: "Remove a location from the stack, then pick a block item and place it at the given location.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust/$.", - break_block: "Remove a location from the stack, then break the block at the given location. This spell can break nearly anything a Diamond Pickaxe can break.$(br)Costs about an eighth of one $(l:items/amethyst)$(item)Amethyst Dust, or a negligible amount if breaking a $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Conjured Block/$ or $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Conjured Light/$.", - create_water: "Summon a block of water (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - destroy_water: "Drains either a liquid container at, or a body of liquid around, the given position. Costs about two $(l:items/amethyst)$(item)Charged Amethyst/$.", - conjure_block: "Conjure an ethereal, but solid, block that sparkles with my pigment at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - conjure_light: "Conjure a magical light that softly glows with my pigment at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + place_block: "", + break_block: "", + create_water: "", + destroy_water: "", + conjure_block: "", + conjure_light: "", bonemeal: "Encourage a plant or sapling at the target position to grow, as if $(item)Bonemeal/$ was applied. Costs a bit more than one $(l:items/amethyst)$(item)Amethyst Dust/$.", - edify: "Forcibly infuse _media into the sapling at the target position, causing it to grow into an $(l:items/edified)$(thing)Edified Tree/$. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + edify: "", ignite: "Start a fire on top of the given location, as if a $(item)Fire Charge/$ was applied, or sets fire to a creature. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - extinguish: "Extinguish blocks in a large area. Costs about six $(l:items/amethyst)$(item)Amethyst Dust/$.", + extinguish: "", }, nadirs: { - "1": "This family of spells all impart a negative potion effect upon an entity. They all take an entity, the recipient, and one or two numbers, the first being the duration and the second, if present, being the potency (starting at 1).$(br2)Each one has a \"base cost;\" the actual cost is equal to that base cost, multiplied by the potency squared.", - "2": "According to certain legends, these spells and their sisters, the $(l:patterns/great_spells/zeniths)$(action)Zeniths/$, were \"[...] inspired by a world near to this one, where powerful wizards would gather magic from the land and hold duels to the death. Unfortunately, much was lost in translation...\"$(br2)Perhaps that is the reason for their peculiar names.", - "potion/weakness": "Inflicts $(thing)weakness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 10 seconds.", - "potion/levitation": "Inflicts $(thing)levitation/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", - "potion/wither": "Inflicts $(thing)withering/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", - "potion/poison": "Inflicts $(thing)poison/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", - "potion/slowness": "Inflicts $(thing)slowness/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", + "1": "", + "2": "", + "potion/weakness": "", + "potion/levitation": "", + "potion/wither": "", + "potion/poison": "", + "potion/slowness": "", }, hexcasting_spell: { basics: "These three spells each create an $(l:items/hexcasting)$(thing)item that casts a _Hex./$$(br)They all require me to hold the empty item in my off-hand, and require two things: the list of patterns to be cast, and an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ to form the item's battery.$(br2)See $(l:items/hexcasting)this entry/$ for more information.", - "craft/cypher": "Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", - "craft/trinket": "Costs about five $(l:items/amethyst)$(item)Charged Amethysts/$.", - "craft/artifact": "Costs about ten $(l:items/amethyst)$(item)Charged Amethysts/$.", + "craft/cypher": "", + "craft/trinket": "", + "craft/artifact": "", "recharge.1": "Recharge a _media-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$.", - "recharge.2": "This spell is cast in a similar method to the crafting spells; an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ is provided, and recharges the _media battery of the item in my other hand.$(br2)This spell $(italic)cannot/$ recharge the item farther than its original battery size.", + "recharge.2": "", "erase.1": "Clear a _Hex-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - "erase.2": "The spell will also void all the _media stored inside the item, releasing it back to Nature and returning the item to a perfectly clean slate. This way, I can re-use $(l:items/hexcasting)$(item)Trinkets/$ I have put an erroneous spell into, for example.$(br2)This also works to clear a $(l:items/focus)$(item)Focus/$ or $(l:items/spellbook)$(item)Spellbook/$ page, unsealing them in the process.", + "erase.2": "", }, sentinels: { - "1": "$(italic)Hence, away! Now all is well,$(br)One aloof stand sentinel./$$(br2)A $(l:patterns/spells/sentinels)$(thing)Sentinel/$ is a mysterious force I can summon to assist in the casting of _Hexes, like a familiar or guardian spirit. It appears as a spinning geometric shape to my eyes, but is invisible to everyone else.", - "2": "It has several interesting properties:$(li)It does not appear to be tangible; no one can touch it.$(li)Only my _Hexes can interact with it.$(li)Once summoned, it stays in place until banished.$(li)I am always able to see it if I'm close enough, even through solid objects.", - "sentinel/create": "Summons my $(l:patterns/spells/sentinels)$(thing)sentinel/$ at the given position. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", - "sentinel/destroy": "Banish my $(l:patterns/spells/sentinels)$(thing)sentinel/$, and remove it from the world. Costs a negligible amount of _media.", + "1": "", + "2": "", + "sentinel/create": "", + "sentinel/destroy": "", "sentinel/get_pos": "Add the position of my $(l:patterns/spells/sentinels)$(thing)sentinel/$ to the stack, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", "sentinel/wayfind": "Transform the position vector on the top of the stack into a unit vector pointing from that position to my $(l:patterns/spells/sentinels)$(thing)sentinel/$, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", }, - colorize: "I must be holding a $(l:items/pigments)$(item)Pigment/$ in my other hand to cast this spell. When I do, it will consume the dye and permanently change my mind's coloration (at least, until I cast the spell again). Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + colorize: "", cycle_variant: "Certain items I create seem oddly receptive to the influence of _media. By holding a $(l:items/hexcasting)$(item)Cypher/$, $(l:items/hexcasting)$(item)Trinket/$, $(l:items/hexcasting)$(item)Artifact/$, $(l:items/focus)$(item)Focus/$, or $(l:items/spellbook)$(item)Spellbook/$ in my other hand, I can use this spell to change the appearance of the item. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", flights: { - "1": "Although it seems that true, limitless flight is out of my grasp, I have nonetheless found some methods of holding one in the sky, each with their respective drawbacks.$(br2)All forms produce a shimmer of excess _media; as the spell gets closer to ending, the sparks are shot through with more red and black.", - "2": "Other forms of flight do exist, of course. For example, a combination of $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ and $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)Blue Sun's Nadir/$ has been used since antiquity for a flight of sorts.$(br2)I've also heard tell of a thin membrane worn on the back that allows the ability to glide. From my research, I believe the Great spell $(l:patterns/great_spells/altiora)$(action)Altiora/$ may be used to mimic it.", - "range.1": "A flight limited in its range.", + "1": "", + "2": "", + "range.1": "", "range.2": "The second argument is a horizontal radius, in meters, in which the spell is stable. Moving outside of that radius will end the spell, dropping me out of the sky. As long as I stay inside the safe zone, however, the spell lasts indefinitely. An additional shimmer of _media marks the origin point of the safe zone. $(br2)Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per meter of safety.", - "time.1": "A flight limited in its duration.", + "time.1": "", "time.2": "The second argument is an amount of time in seconds for which the spell is stable. After that time, the spell ends and I am dropped from the sky. $(br2)It is relatively expensive at about 1 $(l:items/amethyst)$(item)Charged Crystal/$ per second of flight; I believe it is best suited for travel.", - "can_fly.1": "Returns whether the given player is under the effects of $(l:patterns/spells/flight#hexcasting:flight/range)Anchorite's/$ or $(l:patterns/spells/flight#hexcasting:flight/time)Wayfarer's Flight/$.", - "can_fly.2": "Does not detect whether the player can fly by other means.$(br2)It is unclear to me what use this has. But I suppose its utility is in the eye of the beholder.", + "can_fly.1": "", + "can_fly.2": "", }, create_lava: { - "1": "Summon a block of lava (or insert up to a bucket's worth) into a block at the given position. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", - "2": "It may be advisable to keep my knowledge of this spell secret. A certain faction of botanists get... touchy about it, or so I've heard.$(br2)Well, no one said tracing the deep secrets of the universe was going to be an easy time.", + "1": "", + "2": "", }, weather_manip: { - lightning: "I command the heavens! This spell will summon a bolt of lightning to strike the earth where I direct it. Costs about three $(l:items/amethyst)$(item)Amethyst Shards/$.", - summon_rain: "I control the clouds! This spell will summon rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$. Does nothing if it is already raining.", - dispel_rain: "A counterpart to summoning rain. This spell will dispel rain across the world I cast it upon. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$. Does nothing if the skies are already clear.", + lightning: "", + summon_rain: "", + dispel_rain: "", }, altiora: { - "1": "Summon a sheaf of _media about me in the shape of wings, endowed with enough substance to allow gliding.", - "2": "Using them is identical to using $(item)Elytra/$; the target (which must be a player) is lofted into the air, after which pressing $(k:jump) will deploy the wings. The wings are fragile, and break upon touching any surface. Longer flights may benefit from $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulse/$ or (for the foolhardy) $(item)Fireworks/$.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Crystal/$.", + "1": "", + "2": "", }, "teleport/great": { "1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport nearly anywhere in the entire world! There does seem to be a limit, but it is $(italic)much/$ greater than the normal radius of influence I am used to.", "2": "The entity will be teleported by the given vector. Curiously, this vector seems to be an offset, not an absolute position in the world; for example, if I use $(l:patterns/consts#hexcasting:const/vec/x)$(action)Vector Reflection +X/$, the entity will end up precisely one block east of its original position. No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination. In addition, the target will be forcibly removed from anything inanimate they are riding or sitting on ... but I've read scraps that suggest animals can come along for the ride, so to speak.", }, zeniths: { - "1": "This family of spells all impart a positive potion effect upon an entity, similar to the $(l:patterns/spells/nadirs)$(action)Nadirs/$. However, these have their _media costs increase with the $(italic)cube/$ of the potency.", - "potion/regeneration": "Bestows $(thing)regeneration/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", - "potion/night_vision": "Bestows $(thing)night vision/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 5 seconds.", - "potion/absorption": "Bestows $(thing)absorption/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per second.", - "potion/haste": "Bestows $(thing)haste/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", - "potion/strength": "Bestows $(thing)strength/$. Base cost is one $(l:items/amethyst)$(item)Amethyst Dust/$ per 3 seconds.", + "1": "", + "potion/regeneration": "", + "potion/night_vision": "", + "potion/absorption": "", + "potion/haste": "", + "potion/strength": "", }, greater_sentinel: { - "1": "Summon a greater version of my $(l:patterns/spells/sentinels)$(thing)Sentinel/$. Costs about two $(l:items/amethyst)$(item)Amethyst Dust/$.", - "2": "The stronger $(l:patterns/spells/sentinels)$(thing)sentinel/$ acts like the normal one I can summon without the use of a Great Spell, if a little more visually interesting. However, the range in which my spells can work is extended to a small region around my greater $(l:patterns/spells/sentinels)$(thing)sentinel/$, about 16 blocks. In other words, no matter where in the world I am, I can interact with things around my $(l:patterns/spells/sentinels)$(thing)sentinel/$ (the mysterious forces of chunkloading notwithstanding).", + "1": "", + "2": "", }, make_battery: { - "1": "Infuse a bottle with _media to form a $(l:items/phials)$(item)Phial./$", - "2": "Similarly to the spells for $(l:patterns/spells/hexcasting)$(action)Crafting Casting Items/$, I must hold a $(item)Glass Bottle/$ in my other hand, and provide the spell with a dropped stack of $(l:items/amethyst)$(item)Amethyst/$. See $(l:items/phials)this page/$ for more information.$(br2)Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + "1": "", + "2": "", }, - "brainsweep_spell.1": "I cannot make heads or tails of this spell... To be honest, I'm not sure I want to know what it does.", + "brainsweep_spell.1": "", lore: { cardamom1: { - "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #1/$$(br2)Dear Papa,$(br)Every day it seems I have more reason to thank you for saving up to send me to the Grand Library. The amount I am learning is incredible! I feel I don't have the skill with words needed to express myself fully... it is wonderful to be here.", - "2": "I sit in the main dome as I write this. It's maintained by the Hexcasting Corps; they have some sort of peculiar mechanism at the top that captures the stray thought energy as it leaks out from the desks and desks of hard-working students, as I understand it. One of my friends in the dormitory, Amanita, is studying the subject, and oh how she loves to explain it to me at length, although I confess I do not understand it very well.", - "3": "The way I understand it, our processes of thought--the intangible mechanisms by which I move my pen and by which you read this letter--are not completely efficient. A small amount of that energy is released into the environment, like how a wagon's axle is hot to the touch after it has been turning for a while. This spare energy is called \"media.\" One person's spare media is trifiling, but the hundreds of thinking people in the main dome have a sort of multiplicative effect, and combined with some sort of ingenious mechanism, it can be solidified into a sort of purple crystal.", - "4": "But that's enough about her studies. I returned from my first expedition with the Geology Corps today! My apologies for not sending a letter before I left; the date crept up on me. We ventured into a crack in the earth to the east of the Grand and spent the night camping under the rock and soil. We kept to well-lit and well-traveled areas of the cave, of course, and in all honesty it was likely safer in there than the night surface, but oh how I was scared!", + "1": "", + "2": "", + "3": "", + "4": "", "5": "Fortunately the night passed without percance, and we proceeded deeper into the cave for our examination of the local veins of ore. We were looking for trace veins of a purple crystal called \"amethyst,\" which supposedly occurs in small amounts deep in the rock. We did not find anything, sadly, and returned to the sunlit surface empty-handed.", - "6": "Come to think of it, the description of this \"amethyst\" I now realize closely matches those crystals of media Amanita speaks of. Imagine if these nuggets of thought occurred naturally under the ground! I can't imagine why that might happen, though... ", - "7": "As a student, I am entitled to send one letter by Akashic post every three months, free of charge. Unfortunately, you know how thin my moneybags are ... so I am afraid this offer is the only method I may communicate with you. I will of course appreciate immensely if you manage to scrounge together the money to send a letter back, but it seems our communications may be limited. I hate to be cut off from you so, but the skills I gain here will be more than repayment. Imagine, I will be the first member of our family to be anything other than a farmer!", - "8": "So, I suppose I will write again in three months' time.$(br2)Yours,$(br)-- Cardamom Steles", + "6": "", + "7": "", + "8": "", }, cardamom2: { - "1": "$(italic)Full title: Letter from Cardamom Steles to Her Father, #2/$$(br2)Dear Papa,$(br)... Goodness, what an ordeal it is to try to summarize the last three months into a short letter. Such a cruel task set before me by this miracle I receive entirely for free! Woe is me.", - "2": "My studies with the Geology Corps have been progressing smoothly. We have gone on more expeditions, deeper into the earth, to where the smooth gray stone makes way to a hard, flaky slate. It creates such an awful, choking dust under your feet... it's incredible what hostility there is below all of our feet all the time, even disregarding the creatures of the dark. (I have had one or two encounters with them, but I know how you shudder to think of me having to fight for my life, so I will not write of them.)", - "3": "We did manage to find some of this amethyst, however. There was a small vein with a few trace crystals on one of our expeditions. We were under strict instructions to keep none of them and turn them in to our Corps prefect immediately. I find the whole affair rather ridiculous; they treat it like some matter of enormous importance and secrecy, and yet have a group of a dozen students, all barely six months at the Grand Library, trying to excavate barely ten drams of the stuff with twelve prospector's picks in a square foot...", - "4": "I cannot imagine for what purpose, either. A librarian pointed me to an encyclopedia of gems, and amethyst seems to have next to no purpose; it's used for certain specialty types of glass and lenses, of all things.$(br2)If I were to speculate, I would guess that these amethyst crystals and the media they so resemble are one and the same, as I wrote of last time.", - "5": "If this is true, the secrecy, not to mention the prefect's aversion to questioning, may be because this is an original piece of research the Grand Library is not eager to let into the hands of enemy factions.$(br2)However, this theory does not sit quite right with me. The amethyst I handled in the cave and the crystals of media Amanita has shown to me do seem quite similar, but not identical. I would like to see them side-by-side to be sure, but media has a peculiar buzzing or rumbling feel beneath the fingers that amethyst does not.", - "6": "It is quite possible I was unable to sense it on the amethyst in the cave due to the stress of being undergound-- my hands were shaking the one time I managed to touch some, and the feeling is very light --but it does not seem the same to me. The light reflects slightly differently.$(br2)I suppose if I ever manage to get my hands on a crystal of amethyst outside of a cave, I will ask Amanita to see if she can cast a spell with it. Every time we meet she seems to have some new fantastic trick.", - "7": "Just last week she suspended me in the air supported by nothing at all! It is an immensely strange feeling to have your body tingling and lighter than air with your clothing still the same weight... I am just glad she tugged me over my bed before the effect ran out.$(br2)Yours,$(br)-- Cardamom Steles", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", }, cardamom3: { "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 1/2/$$(br2)Dear Papa,$(br)Two very peculiar things have happened since I last wrote.$(br2)Firstly, the professor in charge of the entry-level Hexcasting Corps students has disappeared. Nobody knows where he has gone. His office and living quarters were found locked, but still in their usual state of disarray.", @@ -1311,51 +1311,51 @@ "4": "My pulse started to rise, and I resolved to enter the next house. I figured whoever might be inside would be understanding of their rest being disturbed. At the least, hearing another voice would have been reassuring, even if they didn't let me stay the night under their roof.$(br2)The house was very small, barely more than a cartographer's table and a bed. I could see there was someone in the bed, and I tried to reassure myself that everyone in the village was just deeply asleep as I turned to leave.", "5": "But then the clouds shifted, and moonlight glinted across the bed's occupant.$(br2)I screamed, and its eyes snapped open. It was ... distinctly, horrendously not human. It was like some awful de-evolution of a man, its forehead too high, its body stocky and dense. I believe it is appropriate to say \"it,\" at least; the thing before me was obviously not as wise as a human, despite how it resembled us.", "6": "Its eyes trained on me-- oh, its eyes were awful, dull and unintelligent like a sheep's! It opened its mouth but a pained mockery of speech poured out, a shuddering, nasal groan.", - "7": "I ran. In the light of the newly-revealed moon I caught glimpses of other townspeople through windows, and they were all warped and simplified as the first $(italic)thing/$ I had seen. I sprinted into the darkness of the forest, away from those terrible, terrible animal eyes in those distorted faces.$(br2)The camp was easier to find now that I could see in the moonlight. No-one seemed to have noticed my prolonged absence, thankfully. I crawled back into my bedroll and did my very best to forget the whole night.", - "8": "As you can tell from this letter, I did not do a very good job. That warped visage still haunts my dreams. I shudder to think that it once might have been human.$(br2)After we got back to the Grand I showed the shard of crystal I had smuggled out to Amanita. She confirmed my suspicions: it is definitely a crystal of media. What an enormous geode full of it is doing underground, though, is beyond her.", - "9": "She also mentioned something interesting: apparently media can be used in a similar way to true amethyst in those niche glasses I mentioned a few letters ago. The physical manner in which they both crystallise happens to be nearly identical, and it has nothing to do with media's magical properties, or so she says.$(br2)I chose not to tell her of the village full of monsters.", - "10": "I know how tight money is for you, and how expensive it is to send a letter all the way back to the Grand, but I beg of you, please send a word of advice back. I am greatly distraught, and reading your words would do me much good.$(br2)Yours,$(br)-- Cardamom Steles", + "7": "", + "8": "", + "9": "", + "10": "", }, cardamom5: { - "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #4/$$(br2)Amanita has disappeared.$(br2)I don't know where she has gone, Papa. The last I saw her was over dinner, and she had just spoken to someone about the disappearances, and then--", - "2": "then-- then she was gone too. And no one speaks of her, and I am so so scared, Papa, do they all know? Everyone must have a friend who's just $(italic)vanished/$, into thin air, into non-being.$(br2)Where did they $(italic)go/$?", - "3": "They keep shutting things down, too-- we haven't been on a trip for the Geology Corps in weeks, all the apparati that collect media in the main dome are gone, the Apothecary Corps haven't been open for months... it's like termites are eating the Grand from the inside, leaving a hollow shell.$(br2)I think they've started scanning the letters, we write too...", - "4": "This letter has taken so much courage to write, and I don't have the courage to tell people myself, but if no one here can hold the knowledge I hope and pray you can send the word out... it's a vain hope for this to spread from somewhere as backwater as Brackenfalls, but please, please, do your best. Remember them, Papa... Amanita Libera, Jasmine Ward, Theodore Cha... please, remember them... and please forgive my cowardice, that I foist the responsibility onto you.", - "5": "i can no longer write, my hands shake so much, please, rescue us.", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", }, inventory: { - "1": "Cell 39, Restoration Log #72, Detainment Center Beta$(br2)Prisoner Name: Raphael Barr$(br)Crime: Knowledge of Project Wooleye$(br)Reason for Cell Vacancy: Death$(br)Additional notes: The following letter was scrawled over most of the wall space.", - "2": "I see hexagons when I close my eyes.$(br2)The patterns, they invade the space between my eyes and my eyelids, my mind, my dreams. I sparkle in and out of lucidity, like a crystal dangling from a string, sometimes catching the light, sometimes consumed by it.", - "3": "I am more lucid today. Maybe. I cannot tell anymore. I cannot even say I am tired anymore; at some point the constant companion of exhaustion left me, even as something else came to prick at my eyes. I can't sense the fatigue. But it's there.$(br2)My bones are fragile. My joints are rough and sharp.", - "4": "Sometimes why I am here comes back to me. I remember being too loud about something I knew ... I remember a very bright room where I was told things. I remember my thoughts freezing into glass, shattered, melted and recrystallized over and over and over and over and over with a purpose behind them to make me forget worse than that to keep me alive while killing me, my self, the iota of ME being meaningless because there would be no observer just a body but I tricked them I did it somehow", - "5": "they thought they broke me beyond the point of pulling the wool over my eyes but i was awake enough and am awake enough to feel PAIN$(br2)I do not sleep but when i wake up I cannot rub the crust off of my eyes because it would cut my skin and I do not want to see the purple glints inside", - "6": "They do not kill me, because my husband has my focus, and he would know if I died. But he is no Hexcaster and could not find me with his mediocre skill. i am out of ambit$(br2)it h urts to think. quite literally. the thoughts are so wasteful now the leftover striates directly onto the million microcrystals", - "7": "i remember the doctors in the bright room forcing me to inhale something like sand but sharper and it hurt so much. At first just the physical pain of mucous membranes trying to absorb shatterglass but then they got their fingernails into my stimulus-response and they could do it with a word$(br2)i remember camping out and seeing the corps setting up their circle all around a village and the ground under my feet rumbling", - "8": "drift out of time. Sometimes I believe I see visions of the future, because they seem to make sense but cannot happen now because I know i will be here until forever because the white room men said so. i see myself toppling over and my skull cracking open into halves and inside will be spears of not-amethyst dripping with blood piercing the wrinkled three pounds of fat and meat dreaming that it is a butterfly", - "9": "i hope my students are alright. why do i think that? waste. they told me i'm a waste, they couldn't be content with destroying me they had to make me feel like I deserved it the whole time, too. No sticks or stones to break my bones, just words to hurt me. if they released me no one would believe me because my body is inspectable fully i just look like one more addicted to overcasting$(br2)But they locked me up insted and i dont know if it's a mercy", - "10": "with all the media around I tried many times to cast a hex and get me out or at the least snuff out my suffering but the patterns that march through the fields of my mind snicker and dissolve when I try to reach for them. i think i remember being forced to forget them, I remember grand structures of knowledge interlinked getting chipped away and splintering as it fell apart under the weight of forced ignorance but it hurts so much to try to remember forgetting what you remembered you thought you knew", - "11": "maybe I am just in the late late late late stages of overcasting dependency, the patterns papercutting into the space between my eyes and my eyelids I have heard of, the purple edges of my nerves i have heard of. is there any point trying to make myself believe what is true I am not being tortured. I deserve this. if i will never have anyone to discuss it with ever again why try", - "12": "they're going to kill everyone n the whole world aren't they the grand needs to eat just as much as i ... when did i lasst eat$(br2)everyone else has to eat and they cannot do that if all the farmers in the world are empty and all the knowledge of farming is underground or at least someone else is going to Find out and melt their smug faces to wax", - "13": "maybe wake up someday and wonder about all the thngs we left them and wonder why there are million miles of tunnels underground with no one smart enough to mine them$(br2)i can see them reading this . they ... will be too far gone to care", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "", + "10": "", + "11": "", + "12": "", + "13": "", }, experiment1: { - "1": "$(italic)I only managed to find these five entries from this log./$$(br2)Detonation #26$(li)Location: Carpenter's North$(li)Population: 174$(li)Nodes Formed: 3$(li)Node Distance from Epicenter: 55-80m vertical, 85-156m horizontal$(li)Media Generation: 1320 uθ/min", - "2": "Detonation #27$(li)Location: Brackenfalls$(li)Population: 79$(li)Nodes Formed: 1$(li)Node Distance from Epicenter: 95m vertical, 67m horizontal$(li)Media Generation: 412 uθ/min", - "3": "Detonation #28$(li)Location: Greyston$(li)Population: approx. 1000$(li)Nodes Formed: 18$(li)Node Distance from Epicenter: 47-110m vertical, 59-289m horizontal$(li)Media Generation: 8478 uθ/min", - "4": "Detonation #29$(li)Location: Unnamed; village two days west of Greyston$(li)Population: 35$(li)Nodes Formed: 0$(li)Node Distance from Epicenter: N/A$(li)Media Generation: N/A$(br2)Note: inhabitants still affected in the normal way", - "5": "Detonation #30$(li)Location: Boiling Brook$(li)Population: 231$(li)Nodes Formed: 4$(li)Node Distance from Epicenter: 61-89m vertical, 78-191m horizontal$(li)Media Generation: 1862 uθ/min", - "6": "Conclusion: approx 60 needed for one node. Too few consumes them but does not provide enough energy for node formation. Little correlation between input count and breadth/depth.$(br2)Effects on inhabitants still consistently more severe than with single-target testing, especially the physical effects.", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", }, experiment2: { - "1": "$(italic)These documents were heavily redacted. I have copied the readable text from them here./$$(br2)Subject #1 \"A.E.\"$(br)Stopped struggling immediately after procedure. Facial expression and limbs slack, but can stand unassisted. When left unattended, absently pantomimes actions commonly done in previous profession (groundskeeping).", - "2": "Heartrate high immediately after procedure, but this is inconclusive due to state of fear immediately before. Resulting bud produced 35 uθ/min.$(br)...$(br)Subject #4 \"P.I.\"$(br)Psychological tests run on P.I. Subject has object permanence, spatial awareness, basic numerical reasoning. Difficulty learning new tasks. $(br2) ...", - "3": "Subject #7 \"T.C.\"$(br)Similar results several hours after the procedure to other subjects: able to stand, perform simple tasks... $(br2)Subject #11 \"R.S.\"$(br)Sedated before procedure...$(br2) ...", - "4": "Subject #23 \"A.L.\"$(br)Ability to speak retained to a greater degree than most subjects; dwindled to broken sentences, then a single word \"card\" over the course of several hours.$(br2)For further testing: how does the procedure affect previous Hexcasters vs. non-Hexcasters?$(br2) ...", + "1": "", + "2": "", + "3": "", + "4": "", }, }, interop: { - "1": "The art of _Hexcasting is versatile. If I find that my world has been $(italic)modified/$ by certain other powers, it's possible that I may use _Hexcasting in harmony and combination with them.", - "2": "I should keep in mind, however, that Nature seems to have paid less attention in crafting these aspects of my art; strange behavior and bugs are to be expected. I'm sure the mod developer will do her best to correct them, but I must remember this is a less important pastime to her.$(br2)I may also find that there are sharp disregards to balance in the costs and effects of the interoperating powers. In such a case I suppose I will have to be responsible and restrain myself from using them.", + "1": "", + "2": "", "3": "Finally, if I find myself interested in the lore and stories of this world, I do not think any notes compiled while examining these interoperations should be considered as anything more than light trifles.", gravity: { "1": "I have discovered actions to get and set an entity's gravity. I find them interesting, if slightly nauseating.$(br2)Interestingly, although the $(l:patterns/spells/flight)$(action)Flight/$ spells are limited in range or duration, and manipulate gravity similarly, these are not. It baffles me why... Perhaps the mod developer wanted players to have fun, for once.", From ef69ca64e2095a7c2ba245f588592ef046800ae5 Mon Sep 17 00:00:00 2001 From: "[object Object]" Date: Sun, 16 Aug 2026 19:01:30 +0000 Subject: [PATCH 24/50] chore(l10n): update Spanish translation Co-authored-by: [object Object] Language: Spanish Progress: 18.2% (253 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/es/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 270 +++++++++--------- 1 file changed, 135 insertions(+), 135 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index 8b918772ea..3f11ee0504 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -368,29 +368,29 @@ tooltip: { abacus: { "": "%d", - reset: "Reset to 0", + reset: "", }, brainsweep: { - level: "Level %s", + level: "", }, list_contents: "[%s]", - null_iota: "Null", - boolean_true: "True", - boolean_false: "False", + null_iota: "", + boolean_true: "", + boolean_false: "", }, subtitles: { - "scroll.dust": "t", - "impetus.fletcher.tick": "s", + "scroll.dust": "", + "impetus.fletcher.tick": "", }, action: { "hexcasting:": { "const/": { "vec/": { - "0": "o", + "0": "", }, }, get_caster: "Reflejo de mente", - "entity_pos/foot": "II", + "entity_pos/foot": "", break_block: "Rotura Bloque", "craft/battery": "Craftear frasco", edify: "Edificar arbolito", @@ -426,19 +426,19 @@ }, "iota.hexcasting:": { "null": { - "": "Null", + "": "", }, double: { - "": "Number", + "": "", }, boolean: { - "": "Boolean", + "": "", }, entity: { "": "", }, list: { - "": "List", + "": "", }, pattern: { "": "", @@ -447,12 +447,12 @@ "": "", }, vec3: { - "": "Vector", + "": "", }, }, mishap: { "": "%s: %s", - invalid_pattern: "That pattern isn't associated with any action", + invalid_pattern: "", unescaped: "", not_enough_args: "", no_args: "", @@ -464,7 +464,7 @@ bad_entity: "", bad_brainsweep: "", already_brainswept: "", - no_spell_circle: "%s requires a spell circle", + no_spell_circle: "", others_name: "", "others_name.self": "", divide_by_zero: { @@ -473,9 +473,9 @@ exponent: "", logarithm: "", zero: { - "": "zero", + "": "", power: "", - vec: "the zero vector", + vec: "", }, power: "", sin: "", @@ -486,19 +486,19 @@ many: "", }, no_akashic_record: "", - disallowed: "has been disallowed by the server admins", - disallowed_circle: "has been disallowed in spell circles by the server admins", + disallowed: "", + disallowed_circle: "", invalid_spell_datum_type: "", unknown: "", stack_size: "", bad_caster: "", invalid_value: { - "": "expected %s at index %s of the stack, but got %s", + "": "", "class": { - double: "a number", - boolean: "a boolean", - vector: "a vector", - list: "a list", + double: "", + boolean: "", + vector: "", + list: "", pattern: "", entity: { "": "", @@ -509,8 +509,8 @@ entity_or_vector: "", unknown: "", }, - numvec: "a number or vector", - numlist: "an integer or list", + numvec: "", + numlist: "", double: { positive: { "": "", @@ -520,7 +520,7 @@ between: "", }, int: { - "": "an integer", + "": "", positive: { "": "", less: "", @@ -529,7 +529,7 @@ between: "", }, evaluatable: "", - bool_commute: "a boolean, 0, or 1", + bool_commute: "", }, location_: { too_far: "", @@ -581,7 +581,7 @@ desc: "", }, items: { - "": "Items", + "": "", desc: "", }, greatwork: { @@ -610,13 +610,13 @@ }, }, entry: { - media: "Media", + media: "", geodes: "", couldnt_cast: "", - start_to_see: "WHAT DID I SEE", - "101": "Hex Casting 101", + start_to_see: "", + "101": "", vectors: "", - stack: "The Stack", + stack: "", naming: "", amethyst: "", staff: "", @@ -628,13 +628,13 @@ spellbook: "", scroll: "", slate: "", - hexcasting: "Casting Items", + hexcasting: "", phials: "", potions: "", pigments: "", edified: "", decoration: "", - the_work: "The Work", + the_work: "", brainsweeping: "", spellcircles: "", impetus: "", @@ -723,19 +723,19 @@ }, iotas: { "1": "", - "2": "$(li)Influences, peculiar types of iota that seem to represent abstract ideas.$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$.$(li)A list of several of the above, gathered into a single iota.", - "3": "Generally, I provide iotas to actions. For example, take $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. This spell requires a number iota, to indicate the strength, and a vector iota, to indicate the location.$(br2)Or, take $(l:patterns/basic#hexcasting:get_pos)$(action)Compass Purification/$. This takes an entity iota and transforms it into a vector iota, representing the position of that entity.", + "2": "", + "3": "", }, }, "101": { "1": "", "2": "", - "3": "First, $(thing)patterns/$. These are essential-- they're what I use to manipulate the _media around me. Certain patterns, when drawn, will cause $(thing)actions/$ to happen. Actions are what actually $(italic)do/$ the magic; all patterns influence _media in particular ways, and when those influences end up doing something useful, we call it an action.$(br2)_Media can be fickle: if I draw an invalid pattern, I'll get some $(l:casting/influences)$(action)garbage/$ result somewhere on my stack (read on...)", + "3": "", "4.header": "", - "4": "It's interesting to note that the $(italic)rotation/$ of a pattern doesn't seem to matter at all. These two patterns both perform an action called $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, for example.", + "4": "", "5": "", - "6": "For example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ will create an iota representing $(italic)me/$, the caster, and add it to the top of the stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$ will take the iota at the top the stack, if it represents an entity, and transform it into an iota representing that entity's location.$(br2)So, drawing those patterns in that order would result in an iota on the stack representing my position.", - "8": "$(li)Entities, like myself, chickens, and minecarts;$(li)Influences, peculiar types of iota that seem to represent abstract ideas;$(li)Patterns themselves, used for crafting magic items and truly mind-boggling feats like $(italic)spells that cast other spells/$; and$(li)A list of several of the above, gathered into a single iota.", + "6": "", + "8": "", "9": "", "10": "", "11": "", @@ -746,30 +746,30 @@ "15": "", }, vectors: { - "1": "It seems I will need to be adroit with vectors if I am to get anywhere in my studies. I have compiled some resources here on vectors if I find I do not know how to work with them.$(br2)First off, an enlightening video on the topic.", - "2": "Additionally, it seems that the mages who manipulated $(thing)Psi energy/$ (the so-called \"spellslingers\"), despite their poor naming sense, had some quite-effective lessons on vectors to teach their acolytes. I've taken the liberty of linking to one of their texts on the next page.$(br2)They seem to have used different language for their spellcasting:$(li)A \"Spell Piece\" was their name for an action;$(li)a \"Trick\" was their name for a spell; and$(li)an \"Operator\" was their name for a non-spell action.", - "3": "Link here.", + "1": "", + "2": "", + "3": "", }, mishaps: { - "1": "Unfortunately, I am not (yet) a perfect being. I make mistakes from time to time in my study and casting of _Hexes; for example, misdrawing a pattern, or trying to an invoke an action with the wrong iotas. And Nature usually doesn't look too kindly on my mistakes-- causing what is called a $(italic)percance/$.", - "2": "A pattern that causes a percance will glow red in my grid. Depending on the type of mistake, I can also expect a certain deleterious effect and a spray of red and colorful sparks as the mishandled _media curdles into light of a given color.", - "3": "Fortunately, although the bad effects of percances are certainly $(italic)annoying/$, none of them are especially destructive in the long term. Nothing better to do than dust myself off and try again ... but I should strive for better anyways.$(br2)Following is a list of percances I have compiled.", + "1": "", + "2": "", + "3": "", "invalid_pattern.title": "", - invalid_pattern: "The pattern drawn is not associated with any action.$(br2)Causes yellow sparks, and a $(l:casting/influences)$(action)Garbage/$ will be pushed to the top of my stack.", + invalid_pattern: "", "not_enough_iotas.title": "", - not_enough_iotas: "The action required more iotas than were on the stack.$(br2)Causes light gray sparks, and as many $(l:casting/influences)$(action)Garbages/$ as would be required to fill up the argument count will be pushed.", + not_enough_iotas: "", "stack_size.title": "", - stack_size: "I tried to cast a spell which exceeded the size limit of the stack.$(br2)Causes black sparks, and my entire stack will be replaced with a single $(l:casting/influences)$(action)Garbage/$.", + stack_size: "", "incorrect_iota.title": "", - incorrect_iota: "The action that was executed expected an iota of a certain type for an argument, but it got something invalid. If multiple iotas are invalid, the error message will only tell me about the error deepest in the stack.$(br2)Causes dark gray sparks, and the invalid iota will be replaced with $(l:casting/influences)$(action)Garbage/$.", + incorrect_iota: "", "vector_out_of_range.title": "", vector_out_of_range: "", "entity_out_of_range.title": "", entity_out_of_range: "", "entity_immune.title": "", entity_immune: "", - "math_error.title": "Mathematical Error", - math_error: "The action did something offensive to the laws of mathematics, such as dividing by zero.$(br2)Causes red sparks, pushes a $(l:casting/influences)$(action)Garbage/$ to my stack, and my mind will be ablated, stealing half the vigor I have remaining. It seems that Nature takes offense to such operations, and divides $(italic)me/$ in retaliation.", + "math_error.title": "", + math_error: "", "incorrect_item.title": "", incorrect_item: "", "incorrect_block.title": "", @@ -784,7 +784,7 @@ stack: { "1": "", "2": "", - "3": "Actions are (on the most part) restricted to interacting with the casting stack in these ways. They will pop some iotas they're interested in (known as \"arguments\" or \"parameters\"), process them, and push some number of results.$(br2)Of course, some actions (e.g. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$) might pop no arguments, and some actions (particularly spells) might push nothing afterwards.", + "3": "", "4": "", }, naming: { @@ -795,7 +795,7 @@ mishaps2: { "1": "", "bad_mindflay.title": "Desomente inerte", - bad_mindflay: "Attempted to flay the mind of something that I have either already used, or of a character not suitable for the target block.$(br2)Causes dark green sparks, and kills the subject. If a villager sees that, I doubt they would look on it favorably.", + bad_mindflay: "", "no_circle.title": "", no_circle: "", "no_record.title": "", @@ -820,7 +820,7 @@ thought_knot: { "1": "", "2": "", - "3": "Also, if I store an entity in a $(item)Thought-Knot/$ and try to recall it after the referenced entity has died or otherwise disappeared, the $(l:patterns/readwrite#hexcasting:read)$(action)Scribe's Reflection/$ will add $(l:casting/influences)$(thing)Null/$ to the stack instead.", + "3": "", "crafting.desc": "", }, focus: { @@ -851,11 +851,11 @@ "3": "", }, hexcasting: { - "1": "Although the flexibility of casting _Hexes \"on the go\" with my $(l:items/staff)$(item)Staff/$ is quite helpful, it's a huge pain to have to wave it around repeatedly just to accomplish a basic task. If I could save a common spell for later reuse, it would simplify things a lot-- and allow me to share my _Hexes with friends, too.", + "1": "", "2": "", "3": "", - "4": "$(l:items/hexcasting)$(item)Artifacts/$ are the most powerful of all-- after their _media is depleted, they can use $(l:items/amethyst)$(item)Amethyst/$ from the holder's inventory to pay for the _Hex, just as I do when casting with a $(l:items/staff)$(item)Staff/$. Of course, this also means the spell might consume their mind if there's not enough $(l:items/amethyst)$(item)Amethyst/$.$(br2)Once I've made an empty magic item in a mundane crafting bench, I infuse the _Hex into it using (what else but) a spell appropriate to the item. $(l:patterns/spells/hexcasting)I've catalogued the patterns here./$", - "5": "Each infusion spell requires an entity and a list of patterns on the stack. The entity must be a _media-holding item entity (i.e. $(l:items/amethyst)$(item)amethyst/$ crystals, dropped on the ground); the entity is consumed and forms the battery.$(br2)Usefully, it seems that the _media in the battery is not consumed in chunks as it is when casting with a $(l:items/staff)$(item)Staff/$-- rather, the _media \"melts down\" into one continuous pool. Thus, if I store a _Hex that only costs one $(l:items/amethyst)$(item)Amethyst Dust/$'s worth of media, a $(l:items/amethyst)$(item)Charged Crystal/$ used as the battery will allow me to cast it 10 times.", + "4": "", + "5": "", "crafting.desc": "", }, phials: { @@ -866,7 +866,7 @@ }, potions: { "1": "", - "2": "The Poción de claridad can be extended, strengthened, and modified like any other potion.$(br2)It can also be corrupted with a $(item)Fermented Spider Eye/$ to produce a variant with the opposite effect. This may be useful for dealing with enemy casters.", + "2": "", "effects.header": "claridad and nublado", }, pigments: { @@ -874,7 +874,7 @@ "2": "", "colored.crafting.header": "", "colored.crafting.desc": "", - special: "And finally, a pair of special pigments. $(item)Soulglimmer Pigment/$ shines with colors wholly unique to me, and $(item)Vacant Pigment/$ restores my original purplish-orange spread.$(br2)$(italic)And all the colors I am inside have not been invented yet./$", + special: "", }, edified: { "1": "", @@ -898,17 +898,17 @@ brainsweeping: { "1": "", "2": "", - "3": "The villagers of this world have enough consciousness left to be extracted. Place it into a block, warp it, change it. Intricate patterns caused by different patterns of thought, the abstract neural pathways of their jobs and lives mapped into the cold physic of solid atoms.$(br2)This is what $(l:patterns/great_spells/brainsweep)$(action)Desollar mente/$ does, the extraction. Target the villager entity and the destination block. Ten $(l:items/amethyst)$(item)Charged Amethyst/$ for this perversion of will.", + "3": "", budding_amethyst: "", }, spellcircles: { "1": "", - "2": "To start the ritual I need an $(l:greatwork/impetus)$(item)Impetus/$ to create a self-sustaining wave of _media. That wave travels along a track of $(l:items/slate)$(item)slates/$ or other blocks suitable for the energies, one by one, collecting any patterns it finds. Once the wave circles back around to the $(l:greatwork/impetus)$(item)Impetus/$, all the patterns encountered are cast in order.$(br2)The direction the _media exits any given block MUST be unambiguous, or the casting will fail at the block with too many neighbors.", + "2": "", "3": "", "4": "", "5": "", "6": "", - "7": "I also found a sketch of a spell circle used by the ancients buried in my notes. Facing this page is my (admittedly poor) copy of it.$(br2)The patterns there would have been executed counter-clockwise, starting with $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$ and ending with $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Greater Teleport/$.", + "7": "", "teleport_circle.title": "", }, impetus: { @@ -929,11 +929,11 @@ "2": "", empty_directrix: "", directrix_redstone: "", - directrix_boolean: "A $(l:greatwork/directrix)$(item)Shepherd Directrix/$ switches output side based on a boolean on the stack. A $(thing)True/$ makes the wave exit from the back, a $(thing)False/$ from the front.", + directrix_boolean: "", }, akashiclib: { "1": "", - "2": "The library. Here. My plans.$(br2)Like how patterns are associated with actions, I can associate my own patterns with iotas in any way I choose. An $(l:greatwork/akashiclib)$(item)Akashic Record/$ controls the library, and each $(l:greatwork/akashiclib)$(item)Akashic Bookshelf/$ stores one pattern mapped to one iota. These must all be directly connected together, touching, within 32 blocks. An $(l:greatwork/akashiclib)$(item)Akashic Ligature/$ doesn't do anything but count as a connecting block, to extend the size of my library.", + "2": "", akashic_record: "", "3": "", }, @@ -952,14 +952,14 @@ "4": "", }, basics_pattern: { - get_caster: "Adds me, the caster, to the stack.", + get_caster: "", "entity_pos/eye": "", "entity_pos/foot": "", get_entity_look: "", print: "", raycast: { "1": "", - "2": "If it doesn't hit anything, the vectors will combine into $(l:casting/influences)$(thing)Null/$.$(br2)A common sequence of patterns, the so-called \"raycast mantra,\" is $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Compass Purification/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflejo de mente/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Alidade Purification/$, $(l:patterns/basics#hexcasting:raycast)$(action)Archer's Distillation/$. Together, they return the vector position of the block I am looking at.", + "2": "", }, "raycast/axis": { "1": "", @@ -987,17 +987,17 @@ math: { numvec: "", "add.1": "", - "add.2": "As such:$(li)With two numbers at the top of the stack, combines them into their sum.$(li)With a number and a vector, removes the number from the stack and adds it to each element of the vector.$(li)With two vectors, combines them by summing corresponding components into a new vector (i.e. [1, 2, 3] + [0, 4, -1] = [1, 6, 2]).", + "add.2": "", "sub.1": "", "sub.2": "", "mul.1": "", "mul.2": "", "div.1": "", - "div.2": "As such:$(li)With two numbers, combines them into their quotient.$(li)With a number and a vector, removes the number and divides it by each element of the vector.$(li)With two vectors, combines them into their $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)cross product/$.$(br2)In the first and second cases, the top of the stack or its components comprise the dividend, and the second-from-the-top or its components are the divisor.$(p)WARNING: Never divide by zero!", + "div.2": "", "abs.1": "", "abs.2": "", "pow.1": "", - "pow.2": "With two numbers, combines them by raising the first to the power of the second.$(li)With a number and a vector, removes the number and raises each component of the vector to the number's power.$(li)With two vectors, combines them into the $(l:https://en.wikipedia.org/wiki/Vector_projection)vector projection/$ of the top of the stack onto the second-from-the-top.$(br2)In the first and second cases, the first argument or its components are the base, and the second argument or its components are the exponent.", + "pow.2": "", floor: "", ceil: "", construct_vec: "", @@ -1028,14 +1028,14 @@ to_set: "", }, "consts.const/": { - "null": "Adds the $(l:casting/influences)$(thing)Null/$ influence to the top of the stack.", + "null": "", "true": "", "false": "", "vec/": { - x: "The left-hand counter-clockwise pattern adds [1, 0, 0] to the stack; the right-hand clockwise pattern adds [-1, 0, 0].", - y: "The left-hand counter-clockwise pattern adds [0, 1, 0] to the stack; the right-hand clockwise pattern adds [0, -1, 0].", - z: "The left-hand counter-clockwise pattern adds [0, 0, 1]; the right-hand clockwise pattern adds [0, 0, -1].", - "0": "Adds [0, 0, 0] to the stack.", + x: "", + y: "", + z: "", + "0": "", }, "double/": { tau: "", @@ -1064,11 +1064,11 @@ swizzle: { "1": "", "2": "", - link: "Table of Codes", + link: "", }, }, logic: { - bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(l:casting/influences)$(thing)Null/$, False, and the empty list become False; everything else becomes True.", + bool_coerce: "", bool_to_number: "", not: "", or: "", @@ -1083,13 +1083,13 @@ less_eq: "", }, entities: { - get_entity: "Transform the position on the stack into the entity at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + get_entity: "", "get_entity/": { - animal: "Transform the position on the stack into the animal at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", - monster: "Transform the position on the stack into the monster at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", - item: "Transform the position on the stack into the dropped item at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", - player: "Transform the position on the stack into the player at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", - living: "Transform the position on the stack into the living creature at that location (or $(l:casting/influences)$(thing)Null/$ if there isn't one).", + animal: "", + monster: "", + item: "", + player: "", + living: "", }, zone_entity: "", "zone_entity/": { @@ -1106,7 +1106,7 @@ }, }, lists: { - index: "Remove the number at the top of the stack, then replace the list at the top with the nth element of that list (where n is the number you removed). Replaces the list with $(l:casting/influences)$(thing)Null/$ if the number is out of bounds.", + index: "", slice: "", append: "", unappend: "", @@ -1125,12 +1125,12 @@ }, patterns_as_iotas: { "1": "", - "2": "Fortunately, Nature has provided me with a set of $(l:casting/influences)influences/$ that I can use to work with patterns directly.$(br2)In short, $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ lets me add one pattern to the stack, and $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ let me add a whole list.", + "2": "", parens: { - "1": "Drawing $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$ makes my drawing of patterns act differently, for a time. Until I draw $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Retrospection/$, the patterns I draw are saved. Then, when I draw $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$, they are added to the stack as a list iota.", + "1": "", "2": "", }, - undo: "Finally, if I make a mistake while drawing patterns inside $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Intro-/$ and $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Retrospection/$ I can draw $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)Evanition/$ to remove the last pattern that I drew from the pattern list that is being constructed.", + undo: "", }, readwrite: { "1": "", @@ -1144,20 +1144,20 @@ writable: "", "writable/entity": "", "local.title": "", - local: "Items are not the only places I can store information, however. I am also able to store that information in the _media of the _Hex itself, much like the stack, but separate. Texts refer to this as the $(l:patterns/readwrite#hexcasting:local)$(thing)ravenmind/$. It holds a single iota, much like a $(l:items/focus)$(item)Focus/$, and begins with $(l:casting/influences)$(thing)Null/$ like the same. It is preserved between iterations of $(l:patterns/meta#hexcasting:for_each)$(action)Thoth's Gambit/$, but only lasts as long as the _Hex it's a part of. Once I stop casting, the value will be lost.", + local: "", "write/local": "", "read/local": "", }, meta: { - "eval.1": "Remove a pattern or list of patterns from the stack, then cast them as if I had drawn them myself with my $(l:items/staff)$(item)Staff/$ (until a $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ is encountered). If an iota is escaped with $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)Consideration/$ or $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)its ilk/$, it will be pushed to the stack. Otherwise, non-patterns will fail.", - "eval.2": "This can be $(italic)very/$ powerful in tandem with $(l:items/focus)$(item)Foci/$.$(br2)It also makes the bureaucracy of Nature a \"Turing-complete\" system, according to one esoteric scroll I found.$(br2)However, it seems there's a limit to how many times a _Hex can cast itself-- Nature doesn't look kindly on runaway spells!$(br2)In addition, with the energies of the patterns occurring without me to guide them, any percance will cause the remaining actions to become too unstable and immediately unravel.", - "for_each.1": "Remove a list of patterns and a list from the stack, then cast the given pattern over each element of the second list.", - "for_each.2": "More specifically, for each element in the second list, it will:$(li)Create a new stack, with everything on the current stack plus that element$(li)Draw all the patterns in the first list$(li)Save all the iotas remaining on the stack to a list$(br)Then, after all is said and done, pushes the list of saved iotas onto the main stack.$(br2)No wonder all the practitioners of this art go mad.", + "eval.1": "", + "eval.2": "", + "for_each.1": "", + "for_each.2": "", "halt.1": "", "halt.2": "", - "eval/cc.1": "Cast a pattern or list of patterns from the stack exactly like $(l:patterns/meta#hexcasting:eval)$(action)Hermes' Gambit/$, except that a unique \"Jump\" iota is pushed to the stack beforehand. ", - "eval/cc.2": "When the \"Jump\"-iota is executed, it'll skip the rest of the patterns and jump directly to the end of the pattern list.$(p)While this may seem redundant given $(l:patterns/meta#hexcasting:halt)$(action)Charon's Gambit/$ exists, this allows you to exit $(italic)nested/$ $(l:patterns/meta#hexcasting:eval)$(action)Hermes'/$ invocations in a controlled way, where Charon only allows you to exit one.$(p)The \"Jump\" iota will apparently stay on the stack even after execution is finished... better not think about the implications of that.", - "thanatos.1": "Adds the number of patterns a _Hex is still capable of evaluating to the stack. This is reduced by one for each pattern cast by the _Hex.", + "eval/cc.1": "", + "eval/cc.2": "", + "thanatos.1": "", }, circle_patterns: { disclaimer: "", @@ -1192,9 +1192,9 @@ destroy_water: "", conjure_block: "", conjure_light: "", - bonemeal: "Encourage a plant or sapling at the target position to grow, as if $(item)Bonemeal/$ was applied. Costs a bit more than one $(l:items/amethyst)$(item)Amethyst Dust/$.", + bonemeal: "", edify: "", - ignite: "Start a fire on top of the given location, as if a $(item)Fire Charge/$ was applied, or sets fire to a creature. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + ignite: "", extinguish: "", }, nadirs: { @@ -1207,13 +1207,13 @@ "potion/slowness": "", }, hexcasting_spell: { - basics: "These three spells each create an $(l:items/hexcasting)$(thing)item that casts a _Hex./$$(br)They all require me to hold the empty item in my off-hand, and require two things: the list of patterns to be cast, and an entity representing a dropped stack of $(l:items/amethyst)$(item)Amethyst/$ to form the item's battery.$(br2)See $(l:items/hexcasting)this entry/$ for more information.", + basics: "", "craft/cypher": "", "craft/trinket": "", "craft/artifact": "", - "recharge.1": "Recharge a _media-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Shard/$.", + "recharge.1": "", "recharge.2": "", - "erase.1": "Clear a _Hex-containing item in my other hand. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + "erase.1": "", "erase.2": "", }, sentinels: { @@ -1221,18 +1221,18 @@ "2": "", "sentinel/create": "", "sentinel/destroy": "", - "sentinel/get_pos": "Add the position of my $(l:patterns/spells/sentinels)$(thing)sentinel/$ to the stack, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", - "sentinel/wayfind": "Transform the position vector on the top of the stack into a unit vector pointing from that position to my $(l:patterns/spells/sentinels)$(thing)sentinel/$, or $(l:casting/influences)$(thing)Null/$ if it isn't summoned. Costs a negligible amount of _media.", + "sentinel/get_pos": "", + "sentinel/wayfind": "", }, colorize: "", - cycle_variant: "Certain items I create seem oddly receptive to the influence of _media. By holding a $(l:items/hexcasting)$(item)Cypher/$, $(l:items/hexcasting)$(item)Trinket/$, $(l:items/hexcasting)$(item)Artifact/$, $(l:items/focus)$(item)Focus/$, or $(l:items/spellbook)$(item)Spellbook/$ in my other hand, I can use this spell to change the appearance of the item. Costs about one $(l:items/amethyst)$(item)Amethyst Dust/$.", + cycle_variant: "", flights: { "1": "", "2": "", "range.1": "", - "range.2": "The second argument is a horizontal radius, in meters, in which the spell is stable. Moving outside of that radius will end the spell, dropping me out of the sky. As long as I stay inside the safe zone, however, the spell lasts indefinitely. An additional shimmer of _media marks the origin point of the safe zone. $(br2)Costs about 1 $(l:items/amethyst)$(item)Amethyst Dust/$ per meter of safety.", + "range.2": "", "time.1": "", - "time.2": "The second argument is an amount of time in seconds for which the spell is stable. After that time, the spell ends and I am dropped from the sky. $(br2)It is relatively expensive at about 1 $(l:items/amethyst)$(item)Charged Crystal/$ per second of flight; I believe it is best suited for travel.", + "time.2": "", "can_fly.1": "", "can_fly.2": "", }, @@ -1250,8 +1250,8 @@ "2": "", }, "teleport/great": { - "1": "Far more powerful than $(l:patterns/spells/basic#hexcasting:blink)$(action)Blink/$, this spell lets me teleport nearly anywhere in the entire world! There does seem to be a limit, but it is $(italic)much/$ greater than the normal radius of influence I am used to.", - "2": "The entity will be teleported by the given vector. Curiously, this vector seems to be an offset, not an absolute position in the world; for example, if I use $(l:patterns/consts#hexcasting:const/vec/x)$(action)Vector Reflection +X/$, the entity will end up precisely one block east of its original position. No matter the distance, it always seems to cost about ten $(l:items/amethyst)$(item)Charged Amethyst/$.$(br2)The transference is not perfect, and it seems when teleporting something as complex as a player, their inventory doesn't $(italic)quite/$ stay attached, and tends to splatter everywhere at the destination. In addition, the target will be forcibly removed from anything inanimate they are riding or sitting on ... but I've read scraps that suggest animals can come along for the ride, so to speak.", + "1": "", + "2": "", }, zeniths: { "1": "", @@ -1276,7 +1276,7 @@ "2": "", "3": "", "4": "", - "5": "Fortunately the night passed without percance, and we proceeded deeper into the cave for our examination of the local veins of ore. We were looking for trace veins of a purple crystal called \"amethyst,\" which supposedly occurs in small amounts deep in the rock. We did not find anything, sadly, and returned to the sunlit surface empty-handed.", + "5": "", "6": "", "7": "", "8": "", @@ -1291,26 +1291,26 @@ "7": "", }, cardamom3: { - "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 1/2/$$(br2)Dear Papa,$(br)Two very peculiar things have happened since I last wrote.$(br2)Firstly, the professor in charge of the entry-level Hexcasting Corps students has disappeared. Nobody knows where he has gone. His office and living quarters were found locked, but still in their usual state of disarray.", - "2": "Even more peculiarly, any attempts by the students of the Grand to rouse the administrative portions of the gnarled bureaucracy have been very firmly rejected. Even other professors seem reluctant to talk about him.$(br2)As you might imagine, Amanita is sorely distressed. Whatever replacement professors the Grand managed to dredge up have none of the old professor's tact or skill with beginners.", - "3": "But amazingly, that is not the stranger of the two things I have to tell you. The most horrendous thing I hope to ever experience happened on another trip out with the Geology Corps. This time, we were due for an expedition near a village.", - "4": "Usually when we do such a thing, there is a long process of communication with the mayor or elder of the village to ensure we have permission and establish boundaries on where we are allowed to go and what we are allowed to do. But on this expedition, there was very little of that; we were notified where we were going by a prefect of the Hexcasting Corps scarcely two days before we left.", - "5": "We camped near the village, but in a thick forest, even though the nearby plains would have been much more hospitable. We could barely see the village from where we pitched our tents. As I laid down my bedroll the evening we arrived, the peculiar silence troubled me. Even if we couldn't see the village, we should have been able to hear it. But the whole time we were above-ground, there was next to no sound.", - "6": "The few things I did hear all sounded like work: the peal of hammers on anvils and the scrape of hoe on dirt, for example. I never heard a shred of conversation.$(br2)The next morning we readied our lanterns and descended into the earth.", - "7": "We weren't told exactly what it was we were spelunking for, but one of the other students had overheard we were looking for more amethyst, which seemed reasonable enough. I had my eyes trained for any specks of purple I might find in the cave walls, but just as the gray stone was making way to black slate, an incredible sight unfolded before me.$(br2)It was an entire chamber made of amethyst, nearly ten times as tall as I am. The inside seemed to glow with purple sparks and lanternlight glint, every surface covered with jagged crystal. There was more amethyst here than our entire group had ever excavated since I came to the Grand.", - "8": "Gloves were distributed and we were told to get to mining. One of the prefects along with us had a peculiar lavender box I've seen some of the higher-ups in the Grand using for storage, and the other students and I dutifully got to shattering the glassy crystals off the walls of the cave and putting them in the box. Under the outer layers of brittle crystal there seemed to be two types of denser growth. One of them seemed of similar composition to the loose crystal, but one seemed more ... I struggle to find the word.", - "9": "I hesitate to say \"important,\" but that's the best I can think of. It had a certain ... gravitas, like the dark, sunken X in its surface held some sacred meaning. Whatever the reason we were under strict instructions not to touch them. Occasionally a misplaced pickaxe would shatter one, and the student responsible would get quite the earful. Although the labor was hard and took most of my attention, I couldn't help but notice how ... lucid I felt. It was a strange mix of feelings: I felt incredibly clear-headed, but I also felt if I stopped to examine the feeling I might never stop.", - "10": "It was like each breath in erected a friendly signpost in my head promising the way forward, pointing directly down a steep cliff. I shook my head and immersed myself in the work of mining, which seemed to stave off the signposts.$(br2)I did manage, however, to hide a shard of the crystal in my knapsack.$(br2)We spent nearly the whole day mining, excavating most of the crystal by the time the prefects' chronometer said the sun would set soon.", - "11": "As we left, I couldn't help but notice that on the surfaces of those dark, scored places we left unmined, there seemed to be the faintest buds of new crystal, like they were somehow growing out of them. Everything I had learned about the geology of crystals said they took thousands of years to grow, but here there was new growth in less than a day. I suppose the prefects' warnings against breaking those spots were warranted, at least.", - "12": "Our journey back to the surface was uneventful, and we got back to our tents just as the sun was setting-- My apologies, I am nearly out of paper for this letter. There's only so much you can write on one Akashic letter ... This tale is worth purchasing another letter for. I'll send them both at once, so they should arrive together.$(br2)Yours,$(br)-- Cardamom Steles", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", + "7": "", + "8": "", + "9": "", + "10": "", + "11": "", + "12": "", }, cardamom4: { - "1": "$(italic)Full title: Letter from Cardamom Steles to her father, #3, part 2/2/$$(br2)Dear Papa,$(br)As I was saying, I was running out of paper to write my story, so the rest of it is in this letter. We made it back to camp just as the sun was setting. And that night was the most horrible event of the whole strange outing.", - "2": "I had gotten up in the middle of the night to relieve myself. The moon was covered with clouds, and I confess I got lost in the winds of the forest and could not find the way back to the camp. Fearing the monsters of the night, I decided I would find my way to the village and see if I could find a bed there. At the least, I would be protected there.", - "3": "The village was easy enough to find, though there was very little sound. Even this late at night I would expect the inn to be, if not bustling, at least not silent. But peeking through the inn door I saw absolutely nobody.$(br2)I knocked on the door of one of the houses to no response. The next two houses, too, seemed completely empty.", - "4": "My pulse started to rise, and I resolved to enter the next house. I figured whoever might be inside would be understanding of their rest being disturbed. At the least, hearing another voice would have been reassuring, even if they didn't let me stay the night under their roof.$(br2)The house was very small, barely more than a cartographer's table and a bed. I could see there was someone in the bed, and I tried to reassure myself that everyone in the village was just deeply asleep as I turned to leave.", - "5": "But then the clouds shifted, and moonlight glinted across the bed's occupant.$(br2)I screamed, and its eyes snapped open. It was ... distinctly, horrendously not human. It was like some awful de-evolution of a man, its forehead too high, its body stocky and dense. I believe it is appropriate to say \"it,\" at least; the thing before me was obviously not as wise as a human, despite how it resembled us.", - "6": "Its eyes trained on me-- oh, its eyes were awful, dull and unintelligent like a sheep's! It opened its mouth but a pained mockery of speech poured out, a shuddering, nasal groan.", + "1": "", + "2": "", + "3": "", + "4": "", + "5": "", + "6": "", "7": "", "8": "", "9": "", @@ -1356,16 +1356,16 @@ interop: { "1": "", "2": "", - "3": "Finally, if I find myself interested in the lore and stories of this world, I do not think any notes compiled while examining these interoperations should be considered as anything more than light trifles.", + "3": "", gravity: { - "1": "I have discovered actions to get and set an entity's gravity. I find them interesting, if slightly nauseating.$(br2)Interestingly, although the $(l:patterns/spells/flight)$(action)Flight/$ spells are limited in range or duration, and manipulate gravity similarly, these are not. It baffles me why... Perhaps the mod developer wanted players to have fun, for once.", - get: "Get the main direction gravity pulls the given entity in, as a unit vector. For most entities, this will be down, <0, -1, 0>.", - set: "Set the main direction gravity pulls the given entity in. The given vector will be coerced into the nearest axis, as per $(l:patterns/math#hexcasting:coerce_axial)$(action)Axial Purification/$. Costs about one $(l:items/amethyst)$(item)Charged Amethyst/$.", + "1": "", + get: "", + set: "", }, pehkui: { - "1": "I have discovered methods of changing the size of entities, and querying how much larger or smaller they are than normal.", - get: "Get the scale of the entity, as a proportion of their normal size. For most entities, this will be 1.", - set: "Set the scale of the entity, passing in a proportion of their normal size. Costs about 1 $(item)Amethyst Shard/$.", + "1": "", + get: "", + set: "", }, }, }, From 75cd7a49cd6cb7d32a86c58acf14d8903163cf24 Mon Sep 17 00:00:00 2001 From: ManicTv Date: Sun, 16 Aug 2026 19:01:30 +0000 Subject: [PATCH 25/50] chore(l10n): update Polish translation Co-authored-by: ManicTv Language: Polish Progress: 8.0% (112 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translation: Hex Casting/Common --- .../assets/hexcasting/lang/pl_pl.flatten.json5 | 12 ++++++++++++ 1 file changed, 12 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 37ec444443..7a2d068868 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 @@ -99,6 +99,7 @@ all: "Wygląda na to, że posiadam całą wiedzę oferowaną przez ten świat.", }, sub_sandwich: "Kanapka z Wędliną i Ametystem", + book: "Heksonomikon", }, "entity.hexcasting": { wall_scroll: "Wiszący Zwój", @@ -136,13 +137,24 @@ }, amethyst_: { dust_block: "Blok Ametystowego Pyłu", + tiles: "Ametystowe Kafelki", + bricks: "Ametystowe Cegły", + bricks_small: "Drobne Ametystowe Cegły", + pillar: "Ametystowy Filar", }, slate_amethyst_: { bricks_small: "Drobne Ametystowo-Płytowe Cegły", pillar: "Ametystowo-Płytowy Filar", + tiles: "Ametystowo-Płytowe Kafelki", + bricks: "Ametystowo-Płytowe Cegły", }, scroll_paper_lantern: "Papierowy Lampion", ancient_scroll_paper_lantern: "Starożytny Papierowy Lampion", amethyst_sconce: "Ametystowy Znicz", + scroll_paper: "Pergamin", + ancient_scroll_paper: "Starożytny Pergamin", + edified_: { + log: "Oświecona Kłoda", + }, }, } From 84629ad92bfd5a90e86bc4d6ea485817d67ec8f0 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Sun, 16 Aug 2026 19:01:30 +0000 Subject: [PATCH 26/50] chore(l10n): update translation files Add-on: Remove blank strings Co-authored-by: Hexxy Weblate Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ Translation: Hex Casting/Common --- .../hexcasting/lang/es_es.flatten.json5 | 973 ------------------ 1 file changed, 973 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index 3f11ee0504..701faed790 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -368,1006 +368,33 @@ tooltip: { abacus: { "": "%d", - reset: "", - }, - brainsweep: { - level: "", }, list_contents: "[%s]", - null_iota: "", - boolean_true: "", - boolean_false: "", - }, - subtitles: { - "scroll.dust": "", - "impetus.fletcher.tick": "", }, action: { "hexcasting:": { - "const/": { - "vec/": { - "0": "", - }, - }, get_caster: "Reflejo de mente", - "entity_pos/foot": "", break_block: "Rotura Bloque", "craft/battery": "Craftear frasco", edify: "Edificar arbolito", brainsweep: "Desollar mente", }, - "book.hexcasting:": { - "zone_entity/": { - not_animal: "", - not_monster: "", - not_item: "", - not_player: "", - not_living: "", - }, - mul: "", - div: "", - arcsin: "", - arccos: "", - arctan: "", - "const/vec/": { - x: "", - y: "", - z: "", - }, - "read/entity": "", - bool_to_number: "", - number: "", - mask: "", - }, - }, - "special.hexcasting:": { - number: "", - mask: "", - }, - "iota.hexcasting:": { - "null": { - "": "", - }, - double: { - "": "", - }, - boolean: { - "": "", - }, - entity: { - "": "", - }, - list: { - "": "", - }, - pattern: { - "": "", - }, - garbage: { - "": "", - }, - vec3: { - "": "", - }, }, mishap: { "": "%s: %s", - invalid_pattern: "", - unescaped: "", - not_enough_args: "", - no_args: "", - wrong_dimension: "", - entity_too_far: "", - immune_entity: "", - no_item: "", - "no_item.offhand": "", - bad_entity: "", - bad_brainsweep: "", - already_brainswept: "", - no_spell_circle: "", - others_name: "", - "others_name.self": "", - divide_by_zero: { - divide: "", - project: "", - exponent: "", - logarithm: "", - zero: { - "": "", - power: "", - vec: "", - }, - power: "", - sin: "", - cos: "", - }, - invalid_operator_args: { - one: "", - many: "", - }, - no_akashic_record: "", - disallowed: "", - disallowed_circle: "", - invalid_spell_datum_type: "", - unknown: "", - stack_size: "", - bad_caster: "", - invalid_value: { - "": "", - "class": { - double: "", - boolean: "", - vector: "", - list: "", - pattern: "", - entity: { - "": "", - item: "", - player: "", - living: "", - }, - entity_or_vector: "", - unknown: "", - }, - numvec: "", - numlist: "", - double: { - positive: { - "": "", - less: "", - "less.equal": "", - }, - between: "", - }, - int: { - "": "", - positive: { - "": "", - less: "", - "less.equal": "", - }, - between: "", - }, - evaluatable: "", - bool_commute: "", - }, - location_: { - too_far: "", - out_of_world: "", - too_close_to_out: "", - forbidden: "", - bad_dimension: "", - }, - bad_item: { - "": "", - offhand: "", - iota: { - "": "", - read: "", - write: "", - readonly: "", - }, - media: "", - media_for_battery: "", - only_one: "", - eraseable: "", - bottle: "", - rechargable: "", - colorizer: "", - variant: "", - }, - bad_block: { - "": "", - sapling: "", - replaceable: "", - }, - "circle.bool_directrix": { - no_bool: "", - empty_stack: "", - }, - }, - circles: { - no_exit: "", - many_exits: "", }, - landing: "", category: { - basics: { - "": "", - desc: "", - }, casting: { "": "Hex Casting", - desc: "", - }, - items: { - "": "", - desc: "", - }, - greatwork: { - "": "", - desc: "", - }, - lore: { - "": "", - desc: "", - }, - interop: { - "": "", - desc: "", - }, - patterns: { - "": "", - desc: "", - }, - spells: { - "": "", - desc: "", - }, - great_spells: { - "": "", - desc: "", - }, - }, - entry: { - media: "", - geodes: "", - couldnt_cast: "", - start_to_see: "", - "101": "", - vectors: "", - stack: "", - naming: "", - amethyst: "", - staff: "", - lens: "", - jeweler_hammer: "", - thought_knot: "", - focus: "", - abacus: "", - spellbook: "", - scroll: "", - slate: "", - hexcasting: "", - phials: "", - potions: "", - pigments: "", - edified: "", - decoration: "", - the_work: "", - brainsweeping: "", - spellcircles: "", - impetus: "", - directrix: "", - akashiclib: "", - quenching_allays: "", - fanciful_staves: "", - readers_guide: "", - basics_pattern: "", - numbers: "", - math: "", - advanced_math: "", - sets: "", - consts: "", - stackmanip: "", - logic: "", - entities: "", - lists: "", - patterns_as_iotas: "", - readwrite: "", - meta: "", - circle_patterns: "", - akashic_patterns: "", - itempicking: "", - basic_spell: "", - blockworks: "", - nadirs: "", - hexcasting_spell: "", - sentinels: "", - flights: "", - weather_manip: "", - zeniths: "", - lore: { - cardamom1: "", - cardamom2: "", - cardamom3: "", - cardamom4: "", - cardamom5: "", - experiment1: "", - experiment2: "", - inventory: "", - }, - interop: { - "": "", - gravity: "", - pehkui: "", }, }, page: { - media: { - "1": "", - "2": "", - "3": "", - }, - geodes: { - "1": "", - "2": "", - "3": "", - }, - couldnt_cast: { - "1": "", - "2": "", - "3": "", - "4": "", - }, - start_to_see: { - "1": "", - "2": "", - "3": "", - "4": "", - }, - casting: { - overview: { - "1": "", - }, - grid: { - "1": "", - "2": "", - }, - "patterns&actions": { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - }, - iotas: { - "1": "", - "2": "", - "3": "", - }, - }, - "101": { - "1": "", - "2": "", - "3": "", - "4.header": "", - "4": "", - "5": "", - "6": "", - "8": "", - "9": "", - "10": "", - "11": "", - "12": "", - "13": "", - "14": "", - "14.link_text": "", - "15": "", - }, - vectors: { - "1": "", - "2": "", - "3": "", - }, - mishaps: { - "1": "", - "2": "", - "3": "", - "invalid_pattern.title": "", - invalid_pattern: "", - "not_enough_iotas.title": "", - not_enough_iotas: "", - "stack_size.title": "", - stack_size: "", - "incorrect_iota.title": "", - incorrect_iota: "", - "vector_out_of_range.title": "", - vector_out_of_range: "", - "entity_out_of_range.title": "", - entity_out_of_range: "", - "entity_immune.title": "", - entity_immune: "", - "math_error.title": "", - math_error: "", - "incorrect_item.title": "", - incorrect_item: "", - "incorrect_block.title": "", - incorrect_block: "", - "true_name.title": "", - true_name: "", - "disabled.title": "", - disabled: "", - "other.title": "", - other: "", - }, - stack: { - "1": "", - "2": "", - "3": "", - "4": "", - }, - naming: { - "1": "", - "2": "", - "3": "", - }, mishaps2: { - "1": "", "bad_mindflay.title": "Desomente inerte", - bad_mindflay: "", - "no_circle.title": "", - no_circle: "", - "no_record.title": "", - no_record: "", - }, - amethyst: { - dust: "", - shard: "", - crystal: "", - lore: "", - }, - staff: { - "1": "", - "crafting.header": "", - "crafting.desc": "", - }, - lens: { - "1": "", - "2": "", - "crafting.desc": "", - }, - thought_knot: { - "1": "", - "2": "", - "3": "", - "crafting.desc": "", - }, - focus: { - "1": "", - "2": "", - "3": "", - "crafting.desc": "", - }, - abacus: { - "1": "", - "2": "", - "crafting.desc": "", - }, - spellbook: { - "1": "", - "2": "", - "crafting.desc": "", - }, - scroll: { - "1": "", - "2": "", - "crafting.desc": "", - }, - slate: { - "1": "", - "2": "", - "crafting.desc": "", - "3": "", - }, - hexcasting: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "crafting.desc": "", - }, - phials: { - "1": "", - "2": "", - "3": "", - desc: "", }, potions: { - "1": "", - "2": "", "effects.header": "claridad and nublado", }, - pigments: { - "1": "", - "2": "", - "colored.crafting.header": "", - "colored.crafting.desc": "", - special: "", - }, - edified: { - "1": "", - "2": "", - "crafting.desc": "", - }, - jeweler_hammer: { - "1": "", - "crafting.desc": "", - }, - decoration: { - "1": "", - "ancient_scroll.crafting.desc": "", - "tiles.crafting.desc": "", - "sconce.crafting.desc": "", - }, - the_work: { - "1": "", - "2": "", - }, - brainsweeping: { - "1": "", - "2": "", - "3": "", - budding_amethyst: "", - }, - spellcircles: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - "teleport_circle.title": "", - }, - impetus: { - "1": "", - "2": "", - "3": "", - "4": "", - empty_impetus: "", - impetus_rightclick: "", - impetus_storedplayer: { - "1": "", - "2": "", - }, - impetus_look: "", - }, - directrix: { - "1": "", - "2": "", - empty_directrix: "", - directrix_redstone: "", - directrix_boolean: "", - }, - akashiclib: { - "1": "", - "2": "", - akashic_record: "", - "3": "", - }, - quenching_allays: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - }, - "fanciful_staves.1": "", - readers_guide: { - "1": "", - "2": "", - "3": "", - "4": "", - }, - basics_pattern: { - get_caster: "", - "entity_pos/eye": "", - "entity_pos/foot": "", - get_entity_look: "", - print: "", - raycast: { - "1": "", - "2": "", - }, - "raycast/axis": { - "1": "", - "2": "", - }, - "raycast/entity": "", - get_entity_height: "", - get_entity_velocity: "", - }, - numbers: { - "1": "", - "2": "", - example: { - "10.header": "", - "10": "", - "7.header": "", - "7": "", - "-32.header": "", - "-32": "", - "4.5.header": "", - "4.5": "", - }, - "3": "", - }, - math: { - numvec: "", - "add.1": "", - "add.2": "", - "sub.1": "", - "sub.2": "", - "mul.1": "", - "mul.2": "", - "div.1": "", - "div.2": "", - "abs.1": "", - "abs.2": "", - "pow.1": "", - "pow.2": "", - floor: "", - ceil: "", - construct_vec: "", - deconstruct_vec: "", - modulo: "", - coerce_axial: "", - random: "", - }, - advanced_math: { - sin: "", - cos: "", - tan: "", - arcsin: "", - arccos: "", - arctan: "", - arctan2: "", - logarithm: "", - }, - sets: { - numlist: "", - "or.1": "", - "or.2": "", - "and.1": "", - "and.2": "", - "xor.1": "", - "xor.2": "", - not: "", - to_set: "", - }, - "consts.const/": { - "null": "", - "true": "", - "false": "", - "vec/": { - x: "", - y: "", - z: "", - "0": "", - }, - "double/": { - tau: "", - pi: "", - e: "", - }, - }, - stackmanip: { - "pseudo-novice.title": "", - "pseudo-novice": "", - swap: "", - rotate: "", - rotate_reverse: "", - duplicate: "", - over: "", - tuck: "", - "2dup": "", - stack_len: "", - duplicate_n: "", - fisherman: "", - "fisherman/copy": "", - mask: { - "1": "", - "2": "", - }, - swizzle: { - "1": "", - "2": "", - link: "", - }, - }, - logic: { - bool_coerce: "", - bool_to_number: "", - not: "", - or: "", - and: "", - xor: "", - "if": "", - equals: "", - not_equals: "", - greater: "", - less: "", - greater_eq: "", - less_eq: "", - }, - entities: { - get_entity: "", - "get_entity/": { - animal: "", - monster: "", - item: "", - player: "", - living: "", - }, - zone_entity: "", - "zone_entity/": { - animal: "", - not_animal: "", - monster: "", - not_monster: "", - item: "", - not_item: "", - player: "", - not_player: "", - living: "", - not_living: "", - }, - }, - lists: { - index: "", - slice: "", - append: "", - unappend: "", - add: "", - empty_list: "", - singleton: "", - abs: "", - reverse: "", - index_of: "", - remove_from: "", - replace: "", - last_n_list: "", - splat: "", - construct: "", - deconstruct: "", - }, - patterns_as_iotas: { - "1": "", - "2": "", - parens: { - "1": "", - "2": "", - }, - undo: "", - }, - readwrite: { - "1": "", - "2": "", - read: "", - write: "", - "read/entity": "", - "write/entity": "", - readable: "", - "readable/entity": "", - writable: "", - "writable/entity": "", - "local.title": "", - local: "", - "write/local": "", - "read/local": "", - }, - meta: { - "eval.1": "", - "eval.2": "", - "for_each.1": "", - "for_each.2": "", - "halt.1": "", - "halt.2": "", - "eval/cc.1": "", - "eval/cc.2": "", - "thanatos.1": "", - }, - circle_patterns: { - disclaimer: "", - "circle/impetus_pos": "", - "circle/impetus_dir": "", - "circle/bounds/min": "", - "circle/bounds/max": "", - }, - akashic_patterns: { - "akashic/read": "", - "akashic/write": "", - }, - itempicking: { - "1": "", - "2": "", - "3": "", - }, - basic_spell: { - "explode.1": "", - "explode.2": "", - "explode.fire.1": "", - "explode.fire.2": "", - add_motion: "", - blink: "", - "beep.1": "", - "beep.2": "", - }, - blockworks: { - place_block: "", - break_block: "", - create_water: "", - destroy_water: "", - conjure_block: "", - conjure_light: "", - bonemeal: "", - edify: "", - ignite: "", - extinguish: "", - }, - nadirs: { - "1": "", - "2": "", - "potion/weakness": "", - "potion/levitation": "", - "potion/wither": "", - "potion/poison": "", - "potion/slowness": "", - }, - hexcasting_spell: { - basics: "", - "craft/cypher": "", - "craft/trinket": "", - "craft/artifact": "", - "recharge.1": "", - "recharge.2": "", - "erase.1": "", - "erase.2": "", - }, - sentinels: { - "1": "", - "2": "", - "sentinel/create": "", - "sentinel/destroy": "", - "sentinel/get_pos": "", - "sentinel/wayfind": "", - }, - colorize: "", - cycle_variant: "", - flights: { - "1": "", - "2": "", - "range.1": "", - "range.2": "", - "time.1": "", - "time.2": "", - "can_fly.1": "", - "can_fly.2": "", - }, - create_lava: { - "1": "", - "2": "", - }, - weather_manip: { - lightning: "", - summon_rain: "", - dispel_rain: "", - }, - altiora: { - "1": "", - "2": "", - }, - "teleport/great": { - "1": "", - "2": "", - }, - zeniths: { - "1": "", - "potion/regeneration": "", - "potion/night_vision": "", - "potion/absorption": "", - "potion/haste": "", - "potion/strength": "", - }, - greater_sentinel: { - "1": "", - "2": "", - }, - make_battery: { - "1": "", - "2": "", - }, - "brainsweep_spell.1": "", - lore: { - cardamom1: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - "8": "", - }, - cardamom2: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - }, - cardamom3: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - "8": "", - "9": "", - "10": "", - "11": "", - "12": "", - }, - cardamom4: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - "8": "", - "9": "", - "10": "", - }, - cardamom5: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - }, - inventory: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - "7": "", - "8": "", - "9": "", - "10": "", - "11": "", - "12": "", - "13": "", - }, - experiment1: { - "1": "", - "2": "", - "3": "", - "4": "", - "5": "", - "6": "", - }, - experiment2: { - "1": "", - "2": "", - "3": "", - "4": "", - }, - }, - interop: { - "1": "", - "2": "", - "3": "", - gravity: { - "1": "", - get: "", - set: "", - }, - pehkui: { - "1": "", - get: "", - set: "", - }, - }, }, }, "itemGroup.hexcasting": { From 35e6028218f067b44133ecd77f471177c63ad7c8 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 27/50] chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation chore(l10n): update Russian translation Co-authored-by: DarkThunderer Co-authored-by: Hexxy Weblate Co-authored-by: KOCTEP Co-authored-by: KOCTEP Language: Russian Progress: 99.7% (1383 of 1386 strings) Progress: 99.8% (1384 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ru/ Translation: Hex Casting/Common --- .../hexcasting/lang/ru_ru.flatten.json5 | 638 +++++++++--------- 1 file changed, 319 insertions(+), 319 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 index e4d784c3e5..ac4769ea92 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ru_ru.flatten.json5 @@ -1,25 +1,25 @@ { "item.hexcasting": { - book: "Рунный блокнот", + book: "Хекс-Учебник", staff: { oak: "Дубовый посох", spruce: "Еловый посох", - birch: "Посох из берёзы", + birch: "Берёзовый посох", jungle: "Посох из тропического дерева", - acacia: "Посох из акации", + acacia: "Акациевый посох", dark_oak: "Посох из тёмного дуба", crimson: "Багровый посох", warped: "Искаженный посох", - mangrove: "Посох из мангровых зарослей", + mangrove: "Мангровый посох", cherry: "Вишнёвый посох", bamboo: "Бамбуковый посох", - edified: "Посох созидания", - quenched: "Погашенный посох", - mindsplice: "Посох разума", + edified: "Витиеватый посох", + quenched: "Закалённый посох", + mindsplice: "Разрывающий посох", }, amethyst_dust: "Аметистовая пыль", charged_amethyst: "Заряженный аметист", - quenched_allay_shard: "Осколок погашенного сплава", + quenched_allay_shard: "Осколок закалённого сплава", scroll_small: { "": "Малый свиток", of: "Как вы получили этот свиток %s", @@ -43,7 +43,7 @@ "": "Древняя побрякушка", preset: "Древняя побрякушка: %s", }, - thought_knot: "Узел мысли", + thought_knot: "Узелок памяти", spellbook: "Книга заклинаний", cypher: "Побрякушка", trinket: "Штуковина", @@ -57,7 +57,7 @@ white: "Белый пигмент", orange: "Оранжевый пигмент", magenta: "Пурпурный пигмент", - light_blue: "Светло-голубой пигмент", + light_blue: "Голубой пигмент", yellow: "Желтый пигмент", lime: "Лаймовый пигмент", pink: "Розовый пигмент", @@ -93,8 +93,8 @@ default_colorizer: "Чистый пигмент", ancient_colorizer: "Древний пигмент", creative_unlocker: { - "": "Мыслекуб", - for_emphasis: "Безграничные мысли", + "": "Куб Мысли", + for_emphasis: "БЕЗГРАНИЧНАЯ МЫСЛЬ", tooltip: "Употребите, чтобы разблокировать все знания %s.", mod_name: "Hexcasting", }, @@ -121,7 +121,7 @@ redstone: "Инициатор Священника", }, akashic_: { - record: "Запись Акаши", + record: "Архив Акаши", bookshelf: "Книжная полка Акаши", connector: "Лигатура Акаши", }, @@ -132,7 +132,7 @@ }, slate_: { block: "Блок скрижалей", - tiles: "Плитка из скражалей", + tiles: "Плитка из скрижалей", bricks: "Кирпичи из скрижалей", bricks_small: "Маленькие кирпичи из скрижалей", pillar: "Колонна из скрижалей", @@ -156,84 +156,84 @@ ancient_scroll_paper_lantern: "Древний бумажный фонарь", amethyst_sconce: "Аметистовый подсвечник", edified_: { - log: "Бревно созидания", - log_amethyst: "Аметистовое бревно созидания", - log_aventurine: "Авантюриновое бревно созидания", - log_citrine: "Цитриновое бревно созидания", - log_purple: "Фиолетовое бревно созидания", - wood: "Древесина созидания", - planks: "Доски созидания", - panel: "Панель созидания", - tile: "Плитка созидания", - door: "Дверь созидания", - trapdoor: "Люк созидания", - stairs: "Лестница созидания", - slab: "Плита созидания", - button: "Кнопка созидания", - pressure_plate: "Нажимная плита созидания", - fence: "Ограда созидания", - fence_gate: "Ворота созидания", + log: "Витиеватое бревно", + log_amethyst: "Аметистовое витиеватое бревно", + log_aventurine: "Авантюриновое витиеватое бревно", + log_citrine: "Цитриновое витиеватое бревно", + log_purple: "Фиолетовое витиеватое бревно", + wood: "Витиеватая древесина", + planks: "Витиеватые доски", + panel: "Витиеватая панель", + tile: "Витиеватая плитка", + door: "Витиеватая дверь", + trapdoor: "Витиеватый люк", + stairs: "Витиеватая лестница", + slab: "Витиеватая плита", + button: "Витиеватая кнопка", + pressure_plate: "Витиеватая нажимная плита", + fence: "Витиеватый забор", + fence_gate: "Витиеватые ворота", }, - stripped_edified_log: "Обтесанное бревно созидания", - stripped_edified_wood: "Обтесанная древесина созидания", - amethyst_edified_leaves: "Аметистовые листья созидания", - aventurine_edified_leaves: "Авентюриновые листья созидания", - citrine_edified_leaves: "Цитриновые листья созидания", - quenched_allay: "Погашенный сплав", + stripped_edified_log: "Обтёсанное витиеватое бревно", + stripped_edified_wood: "Обтёсанная витиеватая древесина", + amethyst_edified_leaves: "Аметистовые витиеватые листья", + aventurine_edified_leaves: "Авентюриновые витиеватые листья", + citrine_edified_leaves: "Цитриновые витиеватые листья", + quenched_allay: "Закалённый сплав", quenched_allay_: { - tiles: "Плитка из погашенного сплава", - bricks: "Кирпичи из погашенного сплава", - bricks_small: "Малые кирпичи из погашенного сплава", + tiles: "Плитка из закалённого сплава", + bricks: "Кирпичи из закалённого сплава", + bricks_small: "Малые кирпичи из закалённого сплава", }, }, "effect.hexcasting": { enlarge_grid: "Ясность", - shrink_grid: "Туманность", + shrink_grid: "Помрачение", }, "item.minecraft.potion.effect": { enlarge_grid: "Зелье ясности", enlarge_grid_long: "Зелье ясности", enlarge_grid_strong: "Зелье ясности", - shrink_grid: "Зелье туманности", - shrink_grid_long: "Зелье туманности", - shrink_grid_strong: "Зелье туманности", + shrink_grid: "Зелье помрачения", + shrink_grid_long: "Зелье помрачения", + shrink_grid_strong: "Зелье помрачения", }, "item.minecraft.splash_potion.effect": { enlarge_grid: "Взрывное зелье ясности", enlarge_grid_long: "Взрывное зелье ясности", enlarge_grid_strong: "Взрывное зелье ясности", - shrink_grid: "Взрывное зелье туманности", - shrink_grid_long: "Взрывное зелье туманности", - shrink_grid_strong: "Взрывное зелье туманности", + shrink_grid: "Взрывное зелье помрачения", + shrink_grid_long: "Взрывное зелье помрачения", + shrink_grid_strong: "Взрывное зелье помрачения", }, "item.minecraft.lingering_potion.effect": { enlarge_grid: "Оседающее зелье ясности", enlarge_grid_long: "Оседающее зелье ясности", enlarge_grid_strong: "Оседающее зелье ясности", - shrink_grid: "Оседающее зелье туманности", - shrink_grid_long: "Оседающее зелье туманности", - shrink_grid_strong: "Оседающее зелье туманности", + shrink_grid: "Оседающее зелье помрачения", + shrink_grid_long: "Оседающее зелье помрачения", + shrink_grid_strong: "Оседающее зелье помрачения", }, "item.minecraft.tipped_arrow.effect": { enlarge_grid: "Стрела ясности", enlarge_grid_long: "Стрела ясности", enlarge_grid_strong: "Стрела ясности", - shrink_grid: "Стрела туманности", - shrink_grid_long: "Стрела туманности", - shrink_grid_strong: "Стрела туманности", + shrink_grid: "Стрела помрачения", + shrink_grid_long: "Стрела помрачения", + shrink_grid_strong: "Стрела помрачения", }, "itemGroup.hexcasting": { hexcasting: "Hex Casting", scrolls: "Hex Casting (Свитки)", }, "gui.hexcasting": { - spellcasting: "Сетка Заговора", + spellcasting: "Сетка Начертания", }, "tag.hexcasting": { staves: "Посохи", - edified_logs: "Брёвна созидания", - edified_planks: "Доски созидания", - phial_base: "Пустой сосуд", + edified_logs: "Витиеватые брёвна", + edified_planks: "Витиеватые доски", + phial_base: "Пустые сосуды", }, "tag.item.hexcasting": { brainswept_circle_components: "Компоненты круга очистки разума", @@ -243,9 +243,9 @@ seal_materials: "Запечатанные материалы", }, "emi.category.hexcasting": { - brainsweep: "Кража разума", - "craft.battery": "Создать пузырь мыслей", - edify: "Саженец созидания", + brainsweep: "Раздирание разума", + "craft.battery": "Создание сосуда мысли", + edify: "Искажение саженца", villager_leveling: "Уровень торговли", villager_profession: "Профессия жителя", }, @@ -260,19 +260,19 @@ common: { dustMediaAmount: { "": "Количество Мысли в Пыли", - "@Tooltip": "Сколько мысли вмещает предмет из Аметистовой пыли.", + "@Tooltip": "Сколько Мысли вмещает предмет из Аметистовой пыли.", }, shardMediaAmount: { "": "Количество Мысли в Осколке", - "@Tooltip": "Сколько мысли вмещает осколок аметиста", + "@Tooltip": "Сколько Мысли вмещает осколок аметиста", }, chargedCrystalMediaAmount: { "": "Количество Мысли в Заряженном Кристалле Аметиста", - "@Tooltip": "Сколько Media стоит один заряженный кристалл аметиста", + "@Tooltip": "Сколько Мысли вмещает заряженный кристалл аметиста", }, mediaToHealthRate: { - "": "Влияние Мысли на уровень Здоровья", - "@Tooltip": "Сколько мысли стоит половинка сердца при использовании магии за жизни", + "": "Количество Мысли в Очках Здоровья", + "@Tooltip": "Сколько Мысли вмещает половинка сердца при использовании магии ценой жизни", }, cypherCooldown: { "": "Время восстановления Побрякушки", @@ -309,8 +309,8 @@ "@Tooltip": "Позволяет кликнуть один раз для старта и остановки черчения вместо зажатия кнопки", }, alwaysShowListCommas: { - "": "Всегда показывать запятые списка", - "@Tooltip": "Будут ли все типы йот разделяться запятой внутри списков (по стандарту, йоты рун не используют запятые)", + "": "Всегда показывать запятые в списках", + "@Tooltip": "Будут ли все типы йот разделяться запятой внутри списков (по стандарту, йоты знаков не используют запятые)", }, staticActiveSlates: { "@Tooltip": "Будут ли руны на активных скрижалях прорисованы без покачивания (улучшает производительность при большом количестве скрижалей)", @@ -322,29 +322,29 @@ }, advancedTooltipsShowsIotaNBT: { "": "Отображение NBT Йот в описании предметов при использовании Расширенных Подсказок", - "@Tooltip": "Определяет будут ли отображаться Йоты в предметах по типу Фокуса и Книги Заклинаний при использовании Расширенных Подсказок (F3+H)", + "@Tooltip": "Определяет будут ли отображаться Йоты в предметах по типу Талисмана и Книги Заклинаний при использовании Расширенных Подсказок (F3+H)", }, }, server: { opBreakHarvestLevel: { "": "Уровень Добычи Рун", - "@Tooltip": "Уровень добычи руны Break Block spell.\n0 = дерево, 1 = камень, 2 = железо, 3 = алмаз, 4 = незерит.", + "@Tooltip": "Уровень добычи знака Сломать Блок.\n0 = дерево, 1 = камень, 2 = железо, 3 = алмаз, 4 = незерит.", }, maxOpCount: { - "": "Максимальное Число Рун", - "@Tooltip": "Максимальное число рун, которые можно исполнить за один тик. Позволяет избежать зависания сервера.", + "": "Максимальное Число Знаков", + "@Tooltip": "Максимальное число знаков, которые можно исполнить за один тик. Позволяет избежать зависания сервера.", }, maxSpellCircleLength: { "": "Максимальная Длина Круга Заклинаний", "@Tooltip": "Максимальное число скрижалей в круге заклинаний", }, actionDenyList: { - "": "Чёрный Список Рун", - "@Tooltip": "Расположение идентификаторов запрещённых рун. Попытка исполнить одну из этих рун вызовет провал. Например, hexcasting:get_caster запретит использовать Mind's Reflection", + "": "Чёрный Список Знаков", + "@Tooltip": "Список идентификаторов запрещённых знаков. Попытка исполнить один из них вызовет осечку. Например, hexcasting:get_caster запретит использовать Отражение Разума.", }, circleActionDenyList: { - "": "Чёрный Список Рун Круга Заклинаний", - "@Tooltip": "Расположение идентификаторов запрещённых рун для круга заклинаний. Попытка исполнить одну из этих рун внутри круга вызовет провал.", + "": "Чёрный Список Знаков Круга Заклинаний", + "@Tooltip": "Список идентификаторов запрещённых знаков для круга заклинаний. Попытка исполнить один из них внутри круга вызовет осечку.", }, greaterTeleportSplatsItems: { "": "Великий Телепорт разбрасывает предметы", @@ -356,31 +356,31 @@ }, tpDimDenylist: { "": "Список измерений с запретом на телепортацию", - "@Tooltip": "Место для записи измерений, где запрещена телепортация", + "@Tooltip": "Список идентификаторов измерений, где запрещена телепортация", }, villagersOffendedByMindMurder: { "": "Жители Обижаются На Лоботомию", - "@Tooltip": "Будут ли жители обижаться на игрока, если он использует на других жителях руну кражи разума", + "@Tooltip": "Будут ли жители обижаться на игрока, если он использует на других жителях знак Раздирания Разума", }, traderScrollChance: { "": "Шанс Свитка у Странствующего Торговца", "@Tooltip": "Шанс того что странствующий торговец продает Древний Свиток", }, scrollInjectionsRaw: { - "": "Веса Вставки Свитков", - "@Tooltip": "Сопоставляет названия таблиц добычи с количествами рунных свитков (от мира к миру). Существует 50% шанс получить любой свиток в указанном здесь сундуке; если шанс сработал, сгенерируется от 1 до указанного здесь числа свитков.", + "": "Веса Вставки Свитков в Лут", + "@Tooltip": "Список названий лут-таблиц с весами свитков изменяющихся знаков. Существует 50% шанс получить любой свиток в указанном здесь сундуке; если шанс сработал, сгенерируется от 1 до указанного здесь числа свитков.", }, loreInjectionsRaw: { - "": "Список таблиц с Историей", - "@Tooltip": "Перечисляет все таблицы добычи где будут появляться фрагменты истории.", + "": "Список лут-таблиц с Фрагментами Истории", + "@Tooltip": "Перечисляет все лут-таблицы где будут появляться фрагменты истории.", }, loreChance: { "": "Шанс на фрагменты истории", "@Tooltip": "Шанс появления фрагментов истории в вышеуказанных таблицах.", }, cypherInjectionsRaw: { - "": "Список таблиц с Древними побрякушками", - "@Tooltip": "Перечисляет все таблицы добычи где будут появляться древние побрякушки.", + "": "Список лут-таблиц с Древними побрякушками", + "@Tooltip": "Перечисляет все лут-таблицы где будут появляться древние побрякушки.", }, cypherChance: { "": "Шанс на древние побрякушки", @@ -403,8 +403,8 @@ }, "advancement.hexcasting:": { root: { - "": "Изучение рунных заклинаний", - desc: "Найдите и добудьте концентрированную форму мыслей, растущих глубоко под землей.", + "": "Погружение в Хекс Кастинг", + desc: "Найдите и добудьте концентрированную форму мысли, растущую глубоко под землей.", }, creative_unlocker: { "": "БЕЗГРАНИЧНАЯ ВЛАААСТЬ", @@ -412,7 +412,7 @@ }, enlightenment: { "": "Просветление", - desc: "Разрушьте внутренний барьер, израсходовав почти все свое здоровье за заклинание.", + desc: "Разрушьте внутренний барьер, израсходовав почти всё свое здоровье для исполнения заклинания.", }, wasteful_cast: { "": "Кто аметистами посорит...", @@ -420,24 +420,24 @@ }, big_cast: { "": "... тот нужду пожнет", - desc: "Произнесение одного-единственного заклинания требует поистине огромного количества мысли.", + desc: "Выполните заклинание, требующее поистине большого количества мысли.", }, y_u_no_cast_angy: { "": "Первый блин комом", - desc: "Попробовать произнести заклинание из свитка, но потерпеть неудачу.", + desc: "Попробуйте произнести заклинание из свитка, и потерпите неудачу.", }, opened_eyes: { - "": "Открытие", - desc: "Пусть природа заберет частичку твоего разума в качестве платы за колдовство. Что может случиться, если ты позволишь ей сделать больше?", + "": "Озарение", + desc: "Позвольте природе забрать частичку вашего разума в качестве платы за колдовство. Что же произойдёт, если отдать ей всего себя?", }, lore: { - "": "История рунных заклинаний", + "": "История Хекс Кастинга", desc: "Прочитать фрагмент истории", }, "lore/": { cardamom1: { "": "Кардамом Стайлз #1", - desc: "Письмо Кардамон Стайлз своему отцу, #1", + desc: "Письмо Кардамом Стайлз своему отцу, #1", }, cardamom2: { "": "Кардамом Стайлз #2", @@ -448,7 +448,7 @@ desc: "Письмо Кардамон Стайлз своему отцу, #3, 1/2", }, cardamom4: { - "": "Кардамом Стайлз #3 pt2", + "": "Кардамом Стайлз #3 часть 2", desc: "Письмо Кардамон Стайлз своему отцу, #3, 2/2", }, cardamom5: { @@ -463,36 +463,36 @@ "stat.hexcasting": { media_used: "Потреблено мысли (в виде пыли)", media_overcast: "Переиспользовано мысли (в виде пыли)", - patterns_drawn: "Рун начертано", + patterns_drawn: "Знаков начертано", spells_cast: "Заклинаний использовано", }, "death.attack.hexcasting": { overcast: { - "": "Разум %s был полностью поглощён как оплата заклинания", - player: "Разум %s был полностью поглощён как оплата заклинания, пока тот боролся с %s", + "": "Разум %s был полностью поглощён для оплаты заклинания", + player: "Разум %s был полностью поглощён для оплаты заклинания, пока тот боролся с %s", }, }, "command.hexcasting": { - recalc: "Руны пересчитаны", + recalc: "Знаки пересчитаны", pats: { - listing: "Руны в этом мире:", - all: "Отдал все %d свитки в %s", - "specific.success": "Отдал %s с id %s за %s", + listing: "Знаки в этом мире:", + all: "%s были выданы все %d свитков", + "specific.success": "%s с id %s был выдан %s", }, brainsweep: { - "": "Лоботомизировал %s", + "": "Разум %s успешно разорван", "fail.badtype": "%s это не моб", "fail.already": "%s уже пуст", }, }, "matcher.hexcasting.pattern": { - title: "Хекс Руна", - "title.styled": "Хекс Руна ", - description: "Визуализация Hex Casting Рун", + title: "Хекс-Знак", + "title.styled": "Хекс-Знак ", + description: "Визуализация Знаков Hex Casting", example: "", }, hexcasting: { - "pattern.unknown": "Неизвестная руна %s", + "pattern.unknown": "Неизвестный знак %s", debug: { media_withdrawn: "%s - Поглощено мысли: %s", "media_withdrawn.with_dust": "%s - Поглощено мысли: %s (%s в пыли)", @@ -507,10 +507,10 @@ illuminate: "Свет", growth: "Рост", lunge: "Выпад", - sidestep: "Боковой шаг", - ascend: "Возвышение", + sidestep: "Шаг в сторону", + ascend: "Вознесение", blink: "Перенос", - blastoff: "Взрыв", + blastoff: "Запуск", radar: "Радар", beckon: "Приманка", detonate: "Подрыв", @@ -520,8 +520,8 @@ flight_zone: "Зона полёта", }, message: { - cant_overcast: "Для этого заклинания требовалось больше мысли, чем у меня было... Мне следует еще раз проверить свои расчеты.", - cant_great_spell: "Заклинание каким-то образом не сработало... неужели у меня не хватает знаний?", + cant_overcast: "Для этого заклинания требовалось больше мысли, чем у меня было... Мне следует еще раз проверить свои расчёты.", + cant_great_spell: "Заклинание почему-то не сработало... может мне не хватает опыта?", }, tooltip: { spellbook: { @@ -540,15 +540,15 @@ sealed: "Запечатанный", }, scroll: { - needs_purchase: "Купите, чтобы увидеть руны", - pattern_not_loaded: "Поместите в инвентарь, чтобы загрузить руны", + needs_purchase: "Купите, чтобы увидеть знак", + pattern_not_loaded: "Поместите в инвентарь, чтобы загрузить знак", "recalc_warning.line2": "Введите команду /hexcasting recalcPatterns и возьмите новый свиток.", "recalc_warning.line1": "Схема знака %s ещё не была составлена для этого мира!", }, abacus: { "": "%d", reset: "Сбросить до 0", - "reset.nice": "хороший", + "reset.nice": "класс", }, circle: { no_exit: "Поток мысли не смог найти выхода в %s", @@ -556,20 +556,20 @@ no_closure: "Поток мысли не сможет вернуться к прежнему Инициатору на %s", }, lens: { - "pattern.invalid": "Неизвестная руна", + "pattern.invalid": "Неизвестный знак", bee: { "": "%s пчёл", single: "%s пчела", }, "impetus.redstone.bound": { - "": "Связанный с %s", - none: "Несвязан", + "": "Связан с %s", + none: "Не связан", }, akashic: { "bookshelf.location": "Запись на %s", "record.count": { - "": "%s йоты хранящиеся", - single: "%s йота хранящаяся", + "": "%s йот хранится", + single: "%s хранящаяся йота", }, }, }, @@ -581,20 +581,20 @@ media: "%d пыли", media_amount: "Содержит: %s (%s)", "media_amount.advanced": "Содержит: %s/%s (%s)", - stored_hex: "Заговор:", + stored_hex: "Хекс: ", list_contents: "[%s]", null_iota: "Ничто", jump_iota: "[Прыжок]", - pattern_iota: "Руна(%s)", + pattern_iota: "Знак(%s)", boolean_true: "Истина", boolean_false: "Ложь", }, spelldata: { onitem: "Содержит: %s", - anything: "Что-либо", + anything: "Что угодно", unknown: "Сломанная йота", "entity.whoknows": "Неизвестная сущность", - "akashic.nopos": "Владелец записи не знает ни о каких йота здесь (это ошибка)", + "akashic.nopos": "Владелец записи не знает ни о каких йота здесь (это ошибка мода)", }, subtitles: { casting: { @@ -603,14 +603,14 @@ add_segment: "Добавление строки", }, cast: { - fail: "Треск провала", + fail: "Треск осечки", normal: "Действие жужжит", spell: "Заклинание гремит", - hermes: "Гермес стрекочит", - thoth: "Тот стрекочит", + hermes: "Гермес стрекочет", + thoth: "Тот стрекочет", }, }, - ambiance: "Магическая разметка гудит", + ambiance: "Сетка Начертания гудит", "staff.reset": "Сброс заклинания", abacus: { "": "Счеты щелкают", @@ -630,8 +630,8 @@ attributes: { grid_zoom: "Размер сетки заклинания", media_consumption: "Потребление мысли", - ambit_radius: "Радиус действия игрока", - sentinel_radius: "Радиус действия часового", + ambit_radius: "Радиус Амбита Игрока", + sentinel_radius: "Радиус Амбита Стража", scry_sight: "Магический взгляд", feeble_mind: "Слабоумие", }, @@ -657,55 +657,55 @@ phi: "Отражение гармонии", }, }, - get_caster: "Отражение Нарцисса", - "entity_pos/eye": "Преображение глаз", - "entity_pos/foot": "Преображение ног", - get_entity_look: "Преображение Взгляда", - get_entity_height: "Преображение Высот", + get_caster: "Отражение Разума", + "entity_pos/eye": "Преображение Компаса", + "entity_pos/foot": "Преображение Компаса II", + get_entity_look: "Преображение Алидады", + get_entity_height: "Преображение Роста", get_entity_velocity: "Преображение Скорости", - raycast: "Объединение Луча", - "raycast/axis": "Объединение Стороны", - "raycast/entity": "Объединение Сущности", + raycast: "Объединение Лучника", + "raycast/axis": "Объединение Архитектора", + "raycast/entity": "Объединение Разведчика", "circle/": { - impetus_pos: "Отражение Путевого Камня", - impetus_dir: "Взгляд Путевого Камня", - "bounds/min": "Отражение меньшей стопки", - "bounds/max": "Отражение большей стопки", + impetus_pos: "Отражение Вехи", + impetus_dir: "Отражение Указателя", + "bounds/min": "Отражение малого угла", + "bounds/max": "Отражение крупного угла", }, - append: "Объединение Вступления", + append: "Объединение Дополнения", unappend: "Объединение Вывода", - index: "Объединение Выборки", - singleton: "Одиночное Преображение", + index: "Объединение Выбора", + singleton: "Одиночное Преобр.", empty_list: "Отражение Чистоты", - reverse: "Обратное Преображение", - last_n_list: "Гамбит Группы", - splat: "Распад Группы", + reverse: "Обращающее Преобр.", + last_n_list: "Гамбит Стаи", + splat: "Распад Стаи", index_of: "Объединение Искателя", - remove_from: "Возвышение Удаления", - slice: "Возвышение Выборки", - replace: "Возвышение Хирурга", - construct: "Объединение Динамика", - deconstruct: "Распад Динамика", - get_entity: "Сущностное Преображение", + remove_from: "Вознесение Удаления", + slice: "Вознесение Выбора", + replace: "Вознесение Хирурга", + construct: "Объединение Чтеца", + deconstruct: "Распад Чтеца", + get_entity: "Преображение Сущности", "get_entity/": { - animal: "Сущностное Преображение: Животное", - monster: "Сущностное Преображение: Монстр", - item: "Сущностное Преображение: Предмет", - player: "Сущностное Преображение: Игрок", - living: "Сущностное Преображение: Живое", + animal: "Преобр. Сущн.: Животное", + monster: "Преобр. Сущн.: Монстр", + item: "Преобр. Сущн.: Предмет", + player: "Преобр. Сущн.: Игрок", + living: "Преобр. Сущн.: Живое", }, - zone_entity: "Объединение Области: Любое", + zone_entity: "Объед. Обл.: Любое", "zone_entity/": { - animal: "Объединение Области: Животное", - monster: "Объединение Области: Монстр", - item: "Объединение Области: Предмет", - player: "Объединение Области: Игрок", - living: "Объединение Области: Живое", - not_animal: "Объединение Области: Не-Животное", - not_monster: "Объединение Области: Не-Монстр", - not_item: "Объединение Области: Не-Предмет", - not_player: "Объединение Области: Не-Игрок", - not_living: "Объединение Области: Не-Живое", + animal: "Объед. Обл.: Животное", + monster: "Объед. Обл.: Монстр", + item: "Объед. Обл.: Предмет", + player: "Объед. Обл.: Игрок", + living: "Объед. Обл.: Живое", + not_animal: "Объед. Обл.: Не-Животное", + not_monster: "Объед. Обл.: Не-Монстр", + not_item: "Объед. Обл.: Не-Предмет", + not_player: "Объед. Обл.: Не-Игрок", + not_living: "Объед. Обл.: Не-Живое", }, swap: "Гамбит Шута", rotate: "Гамбит Поворота", @@ -713,56 +713,56 @@ duplicate: "Разбор Близнецов", over: "Гамбит Старателя", tuck: "Гамбит Гробовщика", - "2dup": "Гамбит Дубля", + "2dup": "Гамбит Диоскуров", duplicate_n: "Гамбит Близнецов", - stack_len: "Отражение Группы", + stack_len: "Отражение Стаи", fisherman: "Гамбит Рыбака", "fisherman/copy": "Гамбит Рыбака II", swizzle: "Гамбит Мошенника", - unique: "Преображение Уникальности", - and: "Объединение Совпадения", - or: "Объединение Дизъюнкции", - xor: "Объединение Исключения", - greater: "Объединение Максимум", - less: "Объединение Минимум", - greater_eq: "Объединение Максимум II", - less_eq: "Объединение Минимум II", - equals: "Объединение Равенства", - not_equals: "Объединение Неравенства", - not: "Объединение Отрицания", - bool_coerce: "Преображение Прорицателя", - "if": "Возвышение Прорицателя", - add: "Суммирующее Объединение", - sub: "Вычитающее Объединение", - mul: "Умножающее Объединение", - div: "Делящее Объединение", - abs: "Преображение к Абсолюту", - pow: "Объединение Экспоненты", - floor: "Преображение к полу", - ceil: "Преображение к потолку", - modulo: "Модульное Объединение", - construct_vec: "Векторное Возвышение", - deconstruct_vec: "Векторный Распад", - sin: "Преображение к Синусу", - cos: "Преображение к Косинусу", - tan: "Преображение к Тангенсу", - arcsin: " Преображение к Арксинусу", - arccos: "Преображение к Арккосинусу", - arctan: "Преображение к Арктангенсу", - arctan2: "Преображение к Арктангенсу II", - random: "Отражение Случая", - logarithm: "Логаритмическое Объединение", - coerce_axial: "Преображение к Стороне", + unique: "Преобр. Уникальности", + and: "Объед. Конъюнкции", + or: "Объед. Дизъюнкции", + xor: "Объед. Исключения", + greater: "Объед. Максимус", + less: "Объед. Минимус", + greater_eq: "Объед. Максимус II", + less_eq: "Объед. Минимус II", + equals: "Объед. Равенства", + not_equals: "Объед. Неравенства", + not: "Преобр. Отрицания", + bool_coerce: "Преобр. Авгура", + "if": "Вознесение Авгура", + add: "Объед. Суммы", + sub: "Объед. Разности", + mul: "Объед. Умножения", + div: "Объед. Деления", + abs: "Преобр. Абсолюта", + pow: "Объед. Степени", + floor: "Преобр. к полу", + ceil: "Преобр. к потолку", + modulo: "Объед. Остатка", + construct_vec: "Вознесение Вектора", + deconstruct_vec: "Распад Вектора", + sin: "Преобр. Синуса", + cos: "Преобр. Косинуса", + tan: "Преобр. Тангенса", + arcsin: "Преобр. Арксинуса", + arccos: "Преобр. Арккосинуса", + arctan: "Преобр. Арктангенса", + arctan2: "Объед. Арктангенса", + random: "Отражение Энтропии", + logarithm: "Объед. Логарифма", + coerce_axial: "Преобр. Стороны", read: "Отражение Писаря", - "read/entity": "Преображение Летописца", - "read/local": "Отражение Мунин", + "read/entity": "Преобр. Летописца", + "read/local": "Отражение Мунина", write: "Гамбит Писаря", "write/entity": "Гамбит Летописца", - "write/local": "Гамбит Хугин", + "write/local": "Гамбит Хугина", readable: "Отражение Ревизора", "readable/entity": "Преображение Ревизора", - writable: "Отражение Заседателя", - "writable/entity": "Преображение Заседателя", + writable: "Отраж. Оценщика", + "writable/entity": "Преобр. Оценщика", "akashic/read": "Объединение Акаши", "akashic/write": "Гамбит Акаши", print: "Раскрытие", @@ -773,28 +773,28 @@ blink: "Перенос", break_block: "Сломать Блок", place_block: "Поставить Блок", - "craft/cypher": "Создать Побрякушку", - "craft/trinket": "Создать Штуковину", - "craft/artifact": "Создать Артефакт", - "craft/battery": "Создать Сосуд Мыслей", - recharge: "Зарядить Предмет", - erase: "Очистить Предмет", - create_water: "Создать Воду", - destroy_water: "Испарить Жидкость", - ignite: "Поджечь Блок", - extinguish: "Потушить Область", + "craft/cypher": "Создание Побрякушки", + "craft/trinket": "Создание Штуковины", + "craft/artifact": "Создание Артефакта", + "craft/battery": "Создание Сосуда Мыслей", + recharge: "Зарядка Предмета", + erase: "Очищение Предмета", + create_water: "Создание Воды", + destroy_water: "Испарение Жидкости", + ignite: "Поджог", + extinguish: "Тушение Области", conjure_block: "Магический Барьер", conjure_light: "Магический Свет", - bonemeal: "Ускорить Рост", - edify: "Созидание Саженеца", - colorize: "Использовать Пигмент", - cycle_variant: "Гламур Заклинателя", + bonemeal: "Ускорение Роста", + edify: "Искажение Саженца", + colorize: "Внедрение Пигмента", + cycle_variant: "Стиль Заклинателя", "sentinel/": { - create: "Призвать Часового", - "create/great": "Призвать Великого Часового", - destroy: "Уничтожить Часового", - get_pos: "Место Часового", - wayfind: "Путь к Часовому", + create: "Призыв Стража", + "create/great": "Призыв Великого Стража", + destroy: "Изгнание Стража", + get_pos: "Поиск Стража", + wayfind: "Путь к Стражу", }, "potion/": { weakness: "Надир Белого Солнца", @@ -809,35 +809,35 @@ strength: "Зенит Зеленого Солнца", }, flight: "Альтиора", - "flight/range": "Радиусный Полет", + "flight/range": "Якорный Полет", "flight/time": "Временный Полет", - "flight/can_fly": "Возможность Полёта", - lightning: "Громовержец", - summon_rain: "Призвать дождь", - dispel_rain: "Прогнать дождь", - create_lava: "Создать лаву", + "flight/can_fly": "Преобр. Авиатора", + lightning: "Призыв Молнии", + summon_rain: "Призыв Дождя", + dispel_rain: "Изгнание Дождя", + create_lava: "Создание лавы", "teleport/great": "Великое Перемещение", - brainsweep: "Кража Разума", + brainsweep: "Раздирание Разума", eval: "Гамбит Гермеса", - "eval/cc": "Гамбит Ириса", + "eval/cc": "Гамбит Ирис", for_each: "Гамбит Тота", halt: "Гамбит Харона", thanatos: "Отражение Танатоса", "interop/": { "gravity/": { get: "Отражение Гравитации", - set: "Изменить Гравитацию", + set: "Изменение Гравитации", }, "pehkui/": { get: "Отражение Гуливера", - set: "Изменить Размер", + set: "Изменение Размера", }, }, - type_equals: "Объединение сходств", - type_not_equals: "Объединение различий", + type_equals: "Объединение Сходства", + type_not_equals: "Объединение Различия", "compare_item/": { - lenient: "Объединение сортировщика", - strict: "Объединение Кучки", + lenient: "Объединение Сортировщика", + strict: "Объединение Ювелира", }, get_media: "Отражение Мысли", "compare_block/": { @@ -846,22 +846,22 @@ }, compare_entity: "Объединение Биолога", escape: "Рассмотрение", - runtime_escape: "Представление", + runtime_escape: "Предположение", open_paren: "Интроспекция", close_paren: "Ретроспекция", open_n_parens: "Медитация", close_all_parens: "Пробуждение", read_into_parens: "Внедрение", - undo: "Исчезновение", + undo: "Забвение", }, "book.hexcasting:": { - get_entity_height: "Высот Преобр.", + get_entity_height: "Преобр. Роста", "get_entity/": { - animal: "Преобр Сущн.: Животное", - monster: "Преобр Сущн.: Монстр", - item: "Преобр Сущн.: Предмет", - player: "Преобр Сущн.: Игрок", - living: "Преобр Сущн.: Живое", + animal: "Преобр. Сущн.: Животное", + monster: "Преобр. Сущн.: Монстр", + item: "Преобр. Сущн.: Предмет", + player: "Преобр. Сущн.: Игрок", + living: "Преобр. Сущн.: Живое", }, zone_entity: "Объед. Обл.: Any", "zone_entity/": { @@ -876,37 +876,37 @@ not_player: "Объед. Обл.: Не Игрок", not_living: "Объед. Обл.: Не Живое", }, - mul: "Умножение", - div: "Деление", - arcsin: "Обратный синус", - arccos: "Обратный косинус", - arctan: "Обратный тангенс", - arctan2: "Обратный тангенс II", + mul: "Объед. Умножения", + div: "Объед. Деления", + arcsin: "Преобр. Арксинуса", + arccos: "Преобр. Арккосинуса", + arctan: "Преобр. Арктангенса", + arctan2: "Объед. Арктангенса", "const/vec/": { - x: "Отражение Вектора +X/-X", - y: "Отражение Вектора +Y/-Y", - z: "Отражение Вектора +Z/-Z", + x: "Отраж. Вектора +X/-X", + y: "Отраж. Вектора +Y/-Y", + z: "Отраж. Вектора +Z/-Z", }, - "read/entity": "Преображение Летописца", - bool_to_number: "Нумерологист", - number: "Численное Отражение", + "read/entity": "Преобр. Летописца", + bool_to_number: "Преобр. Нумеролога", + number: "Отражение Числа", mask: "Гамбит Библиотекаря", }, }, "special.hexcasting:": { - number: "Численное Отражение: %s", + number: "Отражение Числа: %s", mask: "Гамбит Библиотекаря: %s", }, mishap: { "": "%s: %s", - invalid_pattern: "Эта руна не связана ни с каким действием", - unescaped: "Ожидалась руна для исполнения, но вместо этого нашлось%s", + invalid_pattern: "Этот знак не связан ни с каким действием", + unescaped: "Ожидался знак, но вместо этого нашлось %s", not_enough_args: "ожидалось %s или больше аргументов, но высота стека была всего %s", no_args: "ожидалось %s или больше аргументов, но стек был пуст", wrong_dimension: "не удается увидеть %s из %s", entity_too_far: "%s находится вне диапазона", immune_entity: "невозможно изменить %s", - eval_too_much: "Рекурсивные вычисления слишком глубокие", + eval_too_much: "Слишком глубокие рекурсивные вычисления", no_item: "нуждается в %s, но ничего не получает", "no_item.offhand": "нуждается в %s в другой руке, но ничего не получил", bad_entity: "нуждается в %s, но получил %s", @@ -914,7 +914,7 @@ already_brainswept: "Разум уже был использован", no_spell_circle: "%s требует круг заклинаний", others_name: "Пытался вторгнуться в частную жизнь - %s", - "others_name.self": "Ты слишком опрометчиво пытался разгласить мое имя", + "others_name.self": "Слишком опрометчиво пытался разгласить мое имя", divide_by_zero: { divide: "Попытался разделить %s на %s", project: "Попытался спроецировать %s на %s", @@ -933,13 +933,13 @@ one: "непредвиденная йота по индексу %d на стеке: %s", many: "%d непредвиденных йот по индексам %d-%d на стеке: %s", }, - no_akashic_record: "Нет Записи Акаши на %s", - disallowed: "был запрещен администраторами сервера", - disallowed_circle: "был запрещен в кругах заклинаний администраторами сервера", + no_akashic_record: "Нет Архива Акаши на %s", + disallowed: "%s был запрещен администраторами сервера", + disallowed_circle: "%s был запрещен в кругах заклинаний администраторами сервера", invalid_spell_datum_type: "Пытался использовать значение недопустимого типа в качестве параметра для написания: %s (класс %s). Это ошибка в настройках.", unknown: "возникло исключение (%s). Это ошибка в моде.", stack_size: "Лимит стека превышен", - bad_caster: "Попытка исполнить руну, требующую более продвинутого разума", + bad_caster: "Попытка исполнить знак, требующий более продвинутого разума", invalid_value: { "": "ожидал %s по индексу %s стека, но получил %s", "class": { @@ -947,20 +947,20 @@ boolean: "логика", vector: "вектор", list: "список", - pattern: "руна", + pattern: "знак", entity: { "": "сущность", item: "предмет-сущность", player: "игрок", living: "живая сущность", - mob: "Моб", - item_holder: "Сущность, держащая предмет", + mob: "моб", + item_holder: "сущность, держащая предмет", }, entity_or_vector: "сущность или вектор", - unknown: "(неизвестно, это ошибка)", + unknown: "(неизвестно, ой-ой, это баг)", continuation: "Йота прыжка", - garbage: "Мусор", - "null": "Ничто", + garbage: "мусор", + "null": "ничто", }, numvec: "число или вектор", numlist: "целое число или список", @@ -1001,12 +1001,12 @@ readonly: "место, которое будет принимать %s", }, media: "предмет, содержащий мысли", - media_for_battery: "необработанный мысли предмет", + media_for_battery: "предмет необработанной мысли", only_one: "ровно один предмет", eraseable: "предмет, поддающийся стиранию", bottle: "стеклянная бутылочка", rechargable: "перезаряжаемый предмет", - colorizer: "Пигмент", + colorizer: "пигмент", variant: "предмет с вариантами", hotbar: "требуется %s в хотбаре", placeable: "размещаемый предмет", @@ -1037,7 +1037,7 @@ }, casting: { "": "Hex Casting", - desc: "Я начал понимать, как старые мастера создавали свои Заклинания! Это немного сложно, но я уверен, что смогу с этим разобраться. Давайте посмотрим...", + desc: "Я начал понимать, как старые мастера создавали свои Хексы! Это немного сложно, но я уверен, что смогу с этим разобраться. Посмотрим...", }, items: { "": "Предметы", @@ -1060,7 +1060,7 @@ desc: "Список всех обнаруженных мною рун, а также то, что они делают.", }, spells: { - "": "Продвинутые Руны", + "": "Заклинания", desc: "Руны, которые оказывают магическое воздействие на окружающий мир.", }, great_spells: { @@ -1100,8 +1100,8 @@ the_work: "Работа", brainsweeping: "О краже разума", spellcircles: "Круги заклинаний", - impetus: "Инициатор", - directrix: "Направитель", + impetus: "Инициаторы", + directrix: "Направители", akashiclib: "Библиотеки Акаши", quenching_allays: "Погашенные тихони", fanciful_staves: "Красивые посохи", @@ -1125,7 +1125,7 @@ basic_spell: "Базовые заклинания", blockworks: "Манипулирование блоками", nadirs: "Надир", - hexcasting_spell: "Создание магических предметов", + hexcasting_spell: "Создание маг. предметов", sentinels: "Часовые", flights: "Полет", weather_manip: "Манипуляция погодой", @@ -1146,8 +1146,8 @@ pehkui: "Pehkui", }, whats_a_hex: "Что такое Хекс?", - types: "Типы Йот", - advanced_escaping: "Продвинутые Абстракции", + types: "Типы", + advanced_escaping: "Продвинутое Экранирование", }, page: { creative_items: { @@ -1238,7 +1238,7 @@ mishaps: { "1": "К сожалению, я не совершенное существо (пока что). Иногда я допускаю ошибки в своих исследованиях и сотворении $(#b38ef3)Заговоров/$; например, я неправильно черчу руны или иногда пытаюсь вызвать действие с неправильными йотами. И Природа обычно не смотрит на мои ошибки благосклонно-- вызывая то, что называется $(italic)провалом/$.", "2": "Некорректная руна будет светиться красным на моей сетке. В зависимости от типа ошибки, я также могу ожидать определенного вредного эффекта и обильного разбрызгивания красного и разноцветных искр, поскольку неправильно обработанные $(#74b3f2)мысли/$ сворачиваются в свет определенного цвета.", - "3": "К счастью, хотя плохие последствия провалов, безусловно, $(italic)раздражают/$, ни одно из них не является особенно разрушительным в долгосрочной перспективе. Нужно лишь отряхнуть с себя грязь и попробовать снова... Но я все равно должен стремиться к лучшему.$(br2)Ниже приведён список провалов, который я составил.", + "3": "К счастью, хотя плохие последствия провалов, безусловно, $(italic)раздражают/$, ни одно из них не является особенно разрушительным в долгосрочной перспективе. Нужно лишь собрать мысли в кучу и попробовать снова... Но я все равно должен стремиться к лучшему.$(br2)Ниже приведён список провалов, который я составил.", "invalid_pattern.title": "Некорректная руна", invalid_pattern: "Руна не связана ни с одним действием.$(br2)Вызывает желтые искры, и $(thing)Мусор/$ будет помещен на верхушку моего стека.", "not_enough_iotas.title": "Недостаточно йот", @@ -1253,7 +1253,7 @@ entity_out_of_range: "Действие пыталось повлиять на существо, находящееся за пределами моего радиуса действия.$(br2)Вызывает розовые искры, и предметы в моих руках будут вырваны и брошены в направлении нарушающего существа.", "entity_immune.title": "Существо неизменяемо", entity_immune: "Действие пыталось повлиять на существо, которое не может быть изменено таким образом.$(br2)Вызывает синие искры, и предметы в моих руках будут вырваны и брошены в направлении нарушающего существа.", - "math_error.title": "Математический парадокс", + "math_error.title": "Математический софизм", math_error: "Действие совершило что-то оскорбительное для законов математики, например, деление на ноль.$(br2)Вызывает красные искры, добавляет $(thing)Мусор/$ в мой стек, и мой разум будет истощен, украв половину оставшейся у меня энергии. Похоже, что Природа возмущается подобными операциями и делит $(italic)меня/$ в ответ.", "incorrect_item.title": "Неправильный предмет", incorrect_item: "Действие требует какого-то предмета, но предоставленный мной предмет не подходит.$(br2)Вызывает коричневые искры. Если нарушающий предмет был в моей руке, он будет брошен на пол. Если это было существо, оно будет брошено в воздух.", @@ -1287,8 +1287,8 @@ bad_mindflay: "Попытка украсть разум у того, чей разум я уже украл, или у существа, не подходящего для указанного блока.$(br2)Вызывает темно-зеленые искры и убивает сущность. Если кто-то из деревенских увидит это, я сомневаюсь, что они отнесутся к этому благосклонно.", "no_circle.title": "Отсутствие круга заклинаний", no_circle: "Попытка использовать руну, треубующую круг заклинаний, вручную.$(br2)Вызывает светло-синие искры и выбрасывает мой инвентарь на землю.", - "no_record.title": "Отсутствие Записи Акаши", - no_record: "Попытка получить доступ к $(l:greatwork/akashiclib)$(item)Записи Акаши/$ в месте, где её нет.$(br2)Вызывает фиолетовые искры и уносит часть моего опыта.", + "no_record.title": "Отсутствие Архива Акаши", + no_record: "Попытка получить доступ к $(l:greatwork/akashiclib)$(item)Архиву Акаши/$ в месте, где его нет.$(br2)Вызывает фиолетовые искры и уносит часть моего опыта.", "bad_shepherd.title": "Неподобающий Пастух", bad_shepherd: "Попытка активировать $(l:greatwork/directrix)$(item)направитель пастуха/$ без булевого значения на верхушке стека.$(br2)Вызывает красные и белые искры, насильно выбрасивая направитель пастуха из круга. К счастью, провал не уничтожит направитель, но я обязательно должен подобрать и вернуть его на законное место.", }, @@ -1306,7 +1306,7 @@ lens: { "1": "$(#74b3f2)Мысли/$ могут оказывать странные эффекты на любой тип информации при определенных обстоятельствах. Покрытие стекла тонким слоем мысли может привести к ... просветляющим идеям.$(br2)Удерживая $(l:items/lens)$(item)Линзу прозрения/$ в руке, я увижу дополнительную информацию о некоторых блоках.", "2": "Например, глядя на разбросанную пыль $(item)красного камня/$, я смогу узреть силу её сигнала. Я подозреваю, что могу обнаружить и другие блоки с дополнительной информацией по мере продвижения моих исследований в этом искусстве.$(br2)Кроме того, удерживая линзу во время использования $(l:items/staff)$(item)Посоха/$, я уменьшу расстояние между точками, что позволит мне разместить больше рун на моей сетке.$(br2)Я также могу носить её на голове как странную разновидность монокля.", - "crafting.desc": "$(italic)Вы видите больше, чем обычно./$", + "crafting.desc": "$(italic)Прежде всего... ты должен научиться... видеть то, что у тебя перед глазами./$", }, thought_knot: { "1": "Забывчивые часто завязывают кусок нити вокруг пальца, чтобы не забыть о чём-то важном. Я верю, что эта идея могла бы пригодиться в моём искусстве. Завязанный особым образом кусок нити должен быть способен устойчиво удерживать одну йоту, независимо от моего стека.$(br2)Я назову свое изобретение $(item)Узлом мысли/$.", @@ -1323,7 +1323,7 @@ abacus: { "1": "Хотя существуют $(l:patterns/numbers)$(action)руны для созидания чисел/$, я нахожу их ... громоздкими, мягко говоря.$(br2)К счастью, старые мастера моего искусства изобрели умное устройство под названием $(l:items/abacus)$(item)Рунные счеты/$ для предоставления чисел для моего использования. Я просто устанавливаю нужное число, затем читаю значение, используя $(l:patterns/readwrite#hexcasting:read)$(action)Отражение Писаря/$, словно читаю с $(l:items/thought_knot)$(item)Узла мысли/$ или $(l:items/focus)$(item)Талисмана/$.", "2": "Для работы с рунными счетами я просто держу их в руке, приседая и прокручивая. Если они лежат в моей основной руке, число будет увеличиваться или уменьшаться на 1, или на 10, если я также удерживаю клавишу Control/Command. Если они лежат в моей второстепенной руке, число будет увеличиваться или уменьшаться на 0.1, или на 0.001, если я также удерживаю Control/Command.$(br2)Я могу встряхнуть счёты, чтобы сбросить их в ноль, сделав правый клик в присяде.", - "crafting.desc": "$(italic)Математика? Это для яйцеголовых!/$", + "crafting.desc": "$(italic)Математика? Я что похож на ботаника?!/$", }, spellbook: { "1": "$(l:items/spellbook)$(item)Книга заклинаний/$ - это вершина моего искусства-- она действует как целая библиотека $(l:items/focus)$(item)Талисманов/$. Аж до $(thing)шестидесяти четырех/$, если быть точным.$(br2)Каждая страница может содержать одну йоту, и я могу выбрать активную страницу (страницу, на которую сейчас сохраняются и откуда копируются йоты), держа её в руке в присяде и прокручивая, или просто удерживая её во второй руке и прокручивая во время сотворения $(#b38ef3)Заговора/$.", @@ -1370,7 +1370,7 @@ "2": "Я не уверен в деталях, но, по-моему, я выделил формулы для множества различных цветов и смесей пигментов. Чтобы применить пигмент, я должен держать его в одной руке и применить руну $(l:patterns/spells/colorize)$(action)Использования Пигмента/$ другой рукой; это поглощает пигмент.$(br2)Пигменты, кажется, влияют на цвет искр $(#74b3f2)мысли/$, излучаемых, когда я использую заклинания и моих $(l:patterns/spells/sentinels)$(thing)Часовых/$, но я не сомневаюсь, что цвет проявится и в других местах.", "colored.crafting.header": "Хроматические Пигменты", "colored.crafting.desc": "Пигменты во всех цветах радуги.", - special: "И, наконец, пара специальных пигментов. $(item)Пигмент души/$ сияет цветами, совершенно уникальными для меня, и $(item)Чистый пигмент/$ восстанавливает мой первоначальный пурпурно-оранжевый оттенок.$(br2)$(italic)И все цвета внутри меня, еще не придуманные./$", + special: "И, наконец, пара специальных пигментов. $(item)Пигмент души/$ сияет цветами, совершенно уникальными для меня, и $(item)Чистый пигмент/$ восстанавливает мой первоначальный пурпурно-оранжевый оттенок.$(br2)$(italic)А какой я внутри? Очень трудный вопрос:$(br)$(italic)Нет названья у этой расцветки./$", }, edified: { "1": "$(#74b3f2)Мысли/$, наполнившие саженец с помощью руны $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Созидания Саженца/$, создают то, что называется $(l:items/edified)$(thing)Деревом созидания/$. Они обычно высокие и острые, с бороздчатой корой и древесиной, растущей в странном спиральном узоре. Их листья имеют три красивых цвета.", @@ -1429,7 +1429,7 @@ }, akashiclib: { "1": "Я ЗНАЮ ТАК МНОГО, что ЕСТЕСТВЕННО иметь место для хранения всего этого. Информацию можно хранить в книгах, но писать от руки и читать глазами так $(italic)медленно/$. Я требую ЛУЧШЕГО. И поэтому Я СОЗДАМ лучшее.$(br2)... Мне становится хуже ... не знаю, успею ли записать все, что вырывается из моей головы, прежде чем умру.", - "2": "Библиотека. Вот. Мои планы.$(br2)Как руны ассоциируются с действиями, я могу ассоциировать свои собственные руны с йотами любым образом, который выберу. $(l:greatwork/akashiclib)$(item)Запись Акаши/$ управляет библиотекой, и каждая $(l:greatwork/akashiclib)$(item)Книжная полка Акаши/$ хранит одну руну, сопоставленную с одной йотой. Все они должны быть прямо связаны между собой, соприкасаясь, в пределах 32 блоков. $(l:greatwork/akashiclib)$(item)Лигатура Акаши/$ не делает ничего, кроме того, что считается соединяющим блоком, чтобы расширить размер моей библиотеки.", + "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)свиток/$. Присев и кликнув пустой рукой, можно очистить данные на полке.", }, @@ -1464,7 +1464,7 @@ "raycast/entity": "Руна подобна $(l:patterns/basics#hexcasting:raycast)$(action)Объединению Луча/$, но вместо этого возвращает $(italic)сущность/$, на которую я смотрю. Стоит незначительное количество $(#74b3f2)мысли/$.", get_entity_height: "Преобразует сущность на стеке в её высоту.", get_entity_velocity: "Преобразует сущность на стеке в направление, в котором она движется, со скоростью этого движения в качестве величины этого вектора.", - get_media: "Добавляет количество _мысли, выраженное в единицах $(l:items/amethyst)$(item)Аметистовой пыли/$, доступное этому заговору.", + get_media: "Добавляет количество _мысли, выраженное в единицах $(l:items/amethyst)$(item)Аметистовой пыли/$, доступное этому исполнению.", }, numbers: { "1": "Досадно, что нет простого способа начертить числа. Вот метод, который природа предоставила нам.", @@ -1495,7 +1495,7 @@ "abs.2": "Заменяет число его абсолютным значением или вектор его длиной.", "pow.1": "Выполнить возведение в степень или векторную проекцию.", "pow.2": "С двумя числами - объединяет их, возводя первое в степень второго.$(li)С числом и вектором - удаляет число и возводит каждую компоненту вектора в степень числа.$(li)С двумя векторами - объединяет их в $(l:https://en.wikipedia.org/wiki/Vector_projection)векторную проекцию/$ верхней части стека на вторую сверху.$(br2)В первом и втором случаях первый аргумент или его компоненты являются основанием, а второй аргумент или его компоненты - показателем степени.", - floor: "\"Округляет\" число, отбрасывая дробную часть и оставляя целочисленное значение. Если передается вектор, вместо этого округляет каждую его компоненту.", + floor: "\"Округляет\" число в меньшую сторону, отбрасывая дробную часть и оставляя целочисленное значение. Если передается вектор, вместо этого округляет каждую его компоненту.", ceil: "\"Округляет вверх\" число, округляя его до следующего целого значения, если присутствует дробная часть. Если передаётся вектор, вместо этого округляет вверх каждую его компоненту.", construct_vec: "Объединяет три числа верхушки стека в вектор.", deconstruct_vec: "Разбивает вектор на его компоненты X, Y и Z (снизу вверх).", @@ -1507,10 +1507,10 @@ sin: "Берет синус угла в радианах, возвращая вертикальную компоненту этого угла, нарисованного на единичной окружности. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", cos: "Берет косинус угла в радианах, возвращая горизонтальную компоненту этого угла, нарисованного на единичной окружности. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", tan: "Берет тангенс угла в радианах, возвращая угловой коэффициент этого угла, нарисованного на окружности. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arcsin: "Берет обратный синус значения с абсолютным значением 1 или меньше, возвращая угол, синус которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arccos: "Берет обратный косинус значения с абсолютным значением 1 или меньше, возвращая угол, косинус которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arctan: "Берет обратный тангенс значения, возвращая угол, тангенс которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", - arctan2: "Берет обратный тангенс значения Y и X, возвращая угол между осью X и линией от начала координат до этой точки.", + arcsin: "Берет арксинус значения с абсолютным значением 1 или меньше, возвращая угол, синус которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arccos: "Берет арккосинус значения с абсолютным значением 1 или меньше, возвращая угол, косинус которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan: "Берет арктангенс значения, возвращая угол, тангенс которого равен этому значению. Связано со значениями $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ и $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan2: "Берет арктангенс значения Y и X, возвращая угол между осью X и линией от начала координат до этой точки.", logarithm: "Удаляет число в верхней части стека, затем берет логарифм числа в верхней части, используя другое число в качестве основания. Связано со значением $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$.", }, sets: { @@ -1636,7 +1636,7 @@ "3": "Эта техника пригодится, если я захочу сослаться на специфичную йоту в своём $(#b38ef3)Заговоре/$, вроде сложного вектора или ссылки на сущность, без нужды создавать их с нуля при каждом исполнении.$(br2)Нужно не забыть о том, как именно я внесу такую йоту в список рун для исполнения. Простейшим способом будет сначала начертить \"заглушку\" при создании списка, а потом заменить её на нужную йоту с помощью руны $(l:patterns/lists#hexcasting:replace)$(action)Возвышения Хирурга/$.", }, runtime_escape: { - "1": "Чтобы использовать$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, Нужно изобразить её, а затем изобразить произвольную руну. Вторая руна будет добавлена в стэк как йота.", + "1": "Чтобы использовать$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Предположение/$, Нужно начертать его, а затем начертать произвольный знак. Второй знак будет добавлен в стек в качестве йоты.", "2": "Называя это \"Экранирование\" мы облегчаем понимание людям знакомым с информатикой.(br2)Классическое применение - скопировать руну на $(l:items/scroll)$(item)Свиток/$ или $(l:items/slate)$(item)Скрижаль/$ с помощью $(l:patterns/readwrite#hexcasting:write)$(action)Гамбита Писаря/$, и красиво повесить на стенку.", }, escape: "То же что и $(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)Contemplation/$, но действует даже будучи изображённой между $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспективой/$. Может \"экранировать\" другие руны которые функционируют между $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспективой/$, добавляет их в стэк избегая другие эффекты.", @@ -1676,8 +1676,8 @@ "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)Аметистовую Пыль/$.", + "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)Аметистовую Пыль/$.", }, itempicking: { "1": "Определенные заклинания, такие как $(l:patterns/spells/blockworks#hexcasting:place_block)$(action)Поставить Блок/$, будут потреблять предметы из моего инвентаря. Когда это происходит, заклинание сначала ищет предмет для использования, а затем берёт предметы из инвенторя.$(br2)Этот процесс называется \"выбор предмета\"", @@ -1696,14 +1696,14 @@ }, blockworks: { place_block: "Поглощает позицию со стека, затем выберает блок и размещает его в указанное месте.$(br)Стоимость равна примерно восьмой части $(l:items/amethyst)$(item)аметистовой пыли/$.", - break_block: "Поглощает позицию со стека, затем ломает блок в указанном месте. Это заклинание способно сломать практически всё, что способна сломать алмазная кирка.$(br)Стоимость равна примерно одной восьмой части $(l:items/amethyst)$(item)аметистовой пыли/$.", - create_water: "Призывает блок воды на указанной позиции. Стоит примерно одну $(l:items/amethyst)$(item)аметистовую пыль/$.", + break_block: "Поглощает позицию со стека, и ломает блок в указанном месте. Это заклинание ломает все что может сломать алмазная кирка.$(br)Стоимость равна примерно одной восьмой части $(l:items/amethyst)$(item)аметистовой пыли/$, или незначительна при разрушении $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Магического блока/$ или$(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)магического света/$.", + create_water: "Призывает блок воды на указанной позиции (или заполняет котёл). Стоит примерно одну $(l:items/amethyst)$(item)аметистовую пыль/$.", destroy_water: "Осушает либо хранилище на указанной позиции, либо часть водоёма вокруг заданной позиции. Стоит примерно два $(l:items/amethyst)$(item)Заряженных Аметиста/$.", conjure_block: "Создаёт прозрачный, но плотный блок, который сверкает моим пигментом в указанном месте. Стоит примерно одну $(l:items/amethyst)$(item)Аметистовую Пыль/$.", conjure_light: "Создаёт магический свет, мягко светящийся моим пигментом в указанном месте. Стоит примерно одну $(l:items/amethyst)$(item)Аметистовую Пыль/$.", bonemeal: "Побуждает растения или саженцы в указанном месте к росту, как если бы к ним была применена $(item)Костная Мука/$. Стоит немного больше, чем одна $(l:items/amethyst)$(item)Аметистовая Пыль/$.", edify: "Принудительно насыщает саженец $(#74b3f2)мыслью/$ на целевой позиции, заставляя его вырасти в $(l:items/edified)$(thing)Древо созидания/$. Стоит примерно как один $(l:items/amethyst)$(item)заряженный аметист/$.", - ignite: "Зажигает огонь на указанном местоположением, как если бы был применен $(item)огненный заряд/$. Стоит примерно одну $(l:items/amethyst)$(item)аметистовую пыль/$.", + ignite: "Зажигает поверхность указанного блока, как если бы был применен $(item)огненный заряд/$, или поджигает сущность. Стоит примерно одну $(l:items/amethyst)$(item)аметистовую пыль/$.", extinguish: "Тушит блоки в большой области. Стоит примерно шесть $(l:items/amethyst)$(item)аметистовых пылинок/$.", }, nadirs: { @@ -1711,7 +1711,7 @@ "2": "Согласно некоторым легендам, эти заклинания и их собратья, $(l:patterns/great_spells/zeniths)$(action)Зениты/$, были \"[...] вдохновлены миром, близким к этому, где могущественные волшебники собирали магию из земли и устраивали дуэли насмерть. К сожалению, многое было потеряно в переводе...\"$(br2)Возможно, в этом и причина их странных названий.", "potion/weakness": "Накладывает $(thing)Слабость/$. Базовая стоимость - одна $(l:items/amethyst)$(item)аметистовая пыль/$ за 10 секунд.", "potion/levitation": "Накладывает $(thing)Левитацию/$. Базовая стоимость - одна $(l:items/amethyst)$(item)аметистовая пыль/$ за 5 секунд.", - "potion/wither": "Накладывает $(thing)Истощение/$. Базовая стоимость - одна $(l:items/amethyst)$(item)аметистовая пыль/$ в секунду.", + "potion/wither": "Накладывает $(thing)Иссушение/$. Базовая стоимость - одна $(l:items/amethyst)$(item)Аметистовая пыль/$ в секунду.", "potion/poison": "Накладывает $(thing)Отравление/$. Базовая стоимость - одна $(l:items/amethyst)$(item)аметистовая пыль/$ за 3 секунды.", "potion/slowness": "Накладывает $(thing)Замедление/$. Базовая стоимость - одна $(l:items/amethyst)$(item)аметистовая пыль/$ за 5 секунд.", }, @@ -1722,8 +1722,8 @@ "craft/artifact": "Стоит примерно 10 $(l:items/amethyst)$(item)Заряженных Аметистов/$.", "recharge.1": "Перезаряжает предмет, содержащий $(#74b3f2)мысли/$, находящийся в моей второстепенной руке. Стоит примерно 1 $(l:items/amethyst)$(item)Аметистовый Осколок/$.", "recharge.2": "Эта руна применяется по схожему с созидающими рунами принципу; Ей требуется Сущность, представляющая собой сброшенную стопку $(l:items/amethyst)$(item)аметиста/$, она перезаряжает батарею $(#74b3f2)мысли/$ предмета в моей второстепенной руке.", - "erase.1": "Очищает предмет в моей второстепенной руке от содержащегося в нём заклинания. Стоит примерно 1 $(l:items/amethyst)$(item)Аметистовую Пыль/$.", - "erase.2": "Это заклинание также аннулирует весь запас $(#74b3f2)мысли/$, хранящийся внутри предмета, возвращая его обратно в Природу и возвращая предмет к идеально чистому состоянию. Таким образом, я могу повторно использовать $(l:items/hexcasting)$(item)Штуковины/$, в которые я поместил ошибочное заклинание.$(br2)Оно также способно очистить $(l:items/focus)$(item)Талисман/$ или $(l:items/spellbook)$(item)Книгу заклинаний/$.", + "erase.1": "Очищает предмет в другой руке от Хекса или йоты. Стоит примерно одну $(l:items/amethyst)$(item)Аметистовую Пыль/$.", + "erase.2": "Это заклинание также аннулирует весь запас $(#74b3f2)мысли/$, хранящийся внутри предмета, возвращая его обратно в Природу и возвращая предмет к идеально чистому состоянию. Таким образом, я могу повторно использовать $(l:items/hexcasting)$(item)Штуковины/$, в которые я поместил ошибочное заклинание.$(br2)Оно также способно очистить $(l:items/focus)$(item)Талисман/$ или $(l:items/spellbook)$(item)Книгу заклинаний/$, и даже снять с них печать.", }, sentinels: { "1": "$(italic)Отсюда, прочь! Всё будет хорошо с тобой,$(br)От нас в отчужденье стоит Часовой./$$(br2)$(l:patterns/spells/sentinels)$(thing)Часовые/$ - это таинственная сила, которую я могу призвать для помощи в исполнении $(#b38ef3)Заговоров/$, подобно фамильяру или ангелу-хранителю. Для меня он выглядит как вращающаяся геометрическая форма, но он невидим для всех остальных.", @@ -1751,11 +1751,11 @@ }, weather_manip: { lightning: "Я повелеваю небесам! Это заклинание призовет молнию, чтобы ударить землю там, куда я направлю её. Стоит примерно 3 $(l:items/amethyst)$(item)Аметистовых Осколка/$.", - summon_rain: "Я управляю облаками! Это заклинание вызовет дождь во всем мире, на который я его наложу. Стоит около одного $(l:items/amethyst)$(item)Заряженого Аметиста/$.", + summon_rain: "Я управляю облаками! Это заклинание вызовет дождь во всем мире, на который я его наложу. Стоит около одного $(l:items/amethyst)$(item)Заряженого Аметиста/$. Если дождь уже идет - эффекта никакого.", dispel_rain: "Аналог вызывания дождя. Это заклинание развеет дождь по всему миру, на который я его наложил. Стоит около одного $(l:items/amethyst)$(item)Осколка Аметиста/$.", }, altiora: { - "1": "Вызывает вокруг меня сноп $(#74b3f2)мысли/$ в форме крыльев, наделенных достаточным количеством вещества, чтобы обеспечить скольжение по воздуху.", + "1": "Сплетает вокруг меня пучок $(#74b3f2)мысли/$ в форме крыльев, достаточно плотный, чтобы обеспечить скольжение по воздуху.", "2": "Их использование идентично использованию $(item)Элитр/$; цель(которой должен быть игрок) поднимается в воздух, после чего нажатие $(k:jump) приводит крылья в действие. Крылья хрупки, и ломаются при соприкосновении с любой поверхностью. Для более длительных полетов можно использовать $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Импульс/$ или (для самых отважных) $(item)Феерверки/$.$(br2)Стоит около одного $(l:items/amethyst)$(item)Заряженного Аметиста/$.", }, "teleport/great": { @@ -1771,14 +1771,14 @@ "potion/strength": "Дарует $(thing)Силу/$. Базовая стоимость - одна $(l:items/amethyst)$(item)Аметистовая Пыль/$ за каждые 3 секунды.", }, greater_sentinel: { - "1": "Призывает более мощную версию моего $(l:patterns/spells/sentinels)$(thing)Часового/$. Стоит около двух $(l:items/amethyst)$(item)Аметистовых Пылей/$.", + "1": "Призывает более мощную версию моего $(l:patterns/spells/sentinels)$(thing)Часового/$. Стоит около двух единиц $(l:items/amethyst)$(item)Аметистовых Пыли/$.", "2": "Более сильный $(l:patterns/spells/sentinels)$(thing)Часовой/$ действует как обычный, которого я могу призвать без использования Великого Заклинания. Однако диапазон, в котором мои заклинания могут работать, расширяется до небольшого региона вокруг моего более мощного $(l:patterns/spells/sentinels)$(thing)Часового/$, примерно 16 блоков. Другими словами, независимо от того, где я нахожусь в мире, я могу взаимодействовать с вещами вокруг моего $(l:patterns/spells/sentinels)$(thing)Часового/$ (мистические силы прогрузки чанков не наблюдаются).", }, make_battery: { "1": "Наполняет бутыль $(#74b3f2)мыслью/$ для получения $(l:items/phials)$(item)Сосуда Мысли/$.", "2": "Подобно заклинаниям для $(l:patterns/spells/hexcasting)$(action)Создания Магических Предметов/$, мне нужно держать $(item)Стеклянную Бутылку/$ в другой руке и предоставить заклинанию выброшенную охапку $(l:items/amethyst)$(item)аметистов/$. Посмотрите $(l:items/phials)эту страницу/$ для получения дополнительной информации.$(br2)Стоит около одного $(l:items/amethyst)$(item)Заряженного Аметиста/$.", }, - "brainsweep_spell.1": "Я не могу понять смысла этого заклинания... Если честно, я не уверен, хочу ли я знать, что оно делает.", + "brainsweep_spell.1": "Это заклинание для меня темный лес... Если честно, я не уверен, хочу ли я знать, что оно делает.", lore: { cardamom1: { "1": "$(italic)Письмо Кардамом Стайлз её Отцу, #1/$$(br2)Дорогой папа,$(br)каждый день я нахожу новые причины поблагодарить тебя за отправление меня в Великую Библиотеку. Невероятно то, сколько нового я узнаю! Мне кажется, что нет таких слов, чтобы описать то, как я себя чувствую... здесь прекрасно!", @@ -1893,13 +1893,13 @@ "remarks.title": "О носителях предметов", }, "compare_block/": { - remarks: "Похоже природа не сильно всматривается в идентичность блоков по отношению друг к другу. К примеру выставленные скрижали будут считаться идентичными даже с разными высеченными рунами, достаточно им смотреть в одном направлении и быть в одинаковой степени затопленными. То же самое с сундуками, они считаются одинаковыми если выглядят одинаково, даже если их наполнение отличается.", - strict: "Сравнивает блоки на которые указывают предоставленные векторы и добавляет логический результат в стэк. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Лестницы созидания/$ будут считаться одинаковыми только если они в точности повторяют друг друга.", - lenient: "Сравнивает типы блоков на которые указывают предоставленные векторы и добавляет логический результат в стэк. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Лестницы созидания/$ будут считаться одинаковыми независимо от формы и затопленности.", + remarks: "Похоже природа не сильно всматривается в идентичность блоков по отношению друг к другу. К примеру выставленные скрижали будут считаться идентичными даже с разными высеченными знаками, достаточно им смотреть в одном направлении и быть в одинаковой степени затопленными. То же самое с сундуками, они считаются одинаковыми если выглядят одинаково, даже если их наполнение отличается.", + strict: "Сравнивает блоки на которые указывают предоставленные векторы и добавляет логический результат в стэк. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Витиеватые лестницы/$ будут считаться одинаковыми только если они в точности повторяют друг друга.", + lenient: "Сравнивает типы блоков на которые указывают предоставленные векторы и добавляет логический результат в стек. Две выставленные $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)Витиеватые лестницы/$ будут считаться одинаковыми независимо от формы и затопленности.", }, }, advanced_escaping: { - "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$ очень полезны, но в процессе создания сложных _Hexes могут понадобиться более продвинутые техники. $(br2)Этот раздел рассказывает об этих техниках: $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Interjection/$ позволяет мне вставить йоты прямо в формирующийся список, а (l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)Медитация/$ и $(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)Recollection/$ позволяют начинать и заканчивать процесс создания вложенных списков с любой глубиной.", + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интро-/$ и $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$ очень полезны, но в процессе создания сложных $(#b38ef3)Хексов/$ могут понадобиться более продвинутые техники. $(br2)Этот раздел рассказывает об этих техниках: $(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)Внедрение/$ позволяет мне вставить йоты прямо в формирующийся список, а (l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)Медитация/$ и $(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)Пробуждение/$ позволяют начинать и заканчивать процесс создания вложенных списков с любой глубиной.", read_into_parens: "Работает только во время $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекции/$. Считывает йоту с другой руки и добавляет её в формирующийся список. Если йота не является руной, придется принять особые $(l:patterns/patterns_as_iotas#iota_embedding)$(action)меры/$ чтобы избежать провала при исполнении списка.", open_n_parens: "Удаляет число из стэка, и действует так же, как если бы я изобразил такое количество $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекций/$. Ведет себя как обычная руна во время $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)интроспекции/$, поэтому для ее вложения придется $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)изощриться/$ с изображением дополнительных $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектив/$.", close_all_parens: "Работает так же как $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)Ретроспектива/$, но закрывает $(italic)все открытые $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Интроспекции/$ за раз. Количество закрытых слоев, а также список сохраненных рун добавляются в стэк.", @@ -1916,7 +1916,7 @@ }, boolean: { "": "Истина/Ложь", - desc: "Истинность", + desc: "Логическое значение", }, entity: { "": "Сущность", @@ -1927,7 +1927,7 @@ desc: "Список", }, pattern: { - "": "Руна", + "": "Знак", desc: "Знак", }, garbage: { From 9105e23b97d02507b86fb91a38a7723ca7350373 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 28/50] chore(l10n): update Chinese (Simplified Han script) translation Co-authored-by: ChuijkYahus 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 10c4557887..5f9e156671 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 @@ -1350,7 +1350,7 @@ }, lens: { "1": "$(media)媒质/$在某些特殊情况下能和任何信息作用而产生奇异效果。而若是在玻璃上覆上薄薄一层媒质,就能……生出些独特的见地。$(br2)手持$(l:items/lens)$(item)探知透镜/$观察某些方块,就能给出一些额外信息。", - "2": "例如,看向$(item)红石粉/$会给出其信号强度。我猜测随着研究的深入,还能发现新的额外信息。$(br2)此外,用$(l:items/staff)$(item)法杖/$施法时,在另一只手持有探知透镜就能缩短点与点的间距,从而能在网格上绘制更多图案。$(br2)我还可以把它当单片眼镜戴在头上。这样做能显示额外信息,但不会缩小网格。但没关系,总有两全其美的办法……", + "2": "例如,看向$(item)红石粉/$会给出其信号强度。我猜测随着研究的深入,还能发现新的额外信息。$(br2)此外,用$(l:items/staff)$(item)法杖/$施法时,在另一只手持有探知透镜就能缩短点与点的间距,从而能在网格上绘制更多图案。$(br2)我还可以把它当单片眼镜戴在头上。", "crafting.desc": "$(italic)你必须学会……探知你所看到的事物。/$", }, thought_knot: { From 3116f5120ffa8c9d119600a48370452a78225096 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 29/50] chore(l10n): update translation files chore(l10n): update translation files chore(l10n): update translation files chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation Add-on: Remove blank strings Co-authored-by: Chichi16 Co-authored-by: Hexxy Weblate Language: Spanish Progress: 18.7% (260 of 1386 strings) Progress: 24.6% (342 of 1386 strings) Progress: 26.8% (372 of 1386 strings) Progress: 39.4% (547 of 1386 strings) Progress: 51.0% (708 of 1386 strings) Progress: 58.7% (814 of 1386 strings) Progress: 86.9% (20 of 23 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/es/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/es/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/es_es.flatten.json5 | 898 +++++++++++++++++- .../hexcasting/lang/es_es.flatten.json5 | 37 +- 2 files changed, 883 insertions(+), 52 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index 701faed790..60d0e8855d 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -1,6 +1,5 @@ { "item.hexcasting": { - book: "Cuardeno hex", staff: { oak: "Bastón de roble", spruce: "Bastón de pino", @@ -93,8 +92,8 @@ default_colorizer: "Pigmento vacante", ancient_colorizer: "Pigmento antiguo", creative_unlocker: { - "": "El cubo de media", - for_emphasis: "MEDIA INFINITA", + "": "El cubo de medio", + for_emphasis: "MEDIO INFINITA", tooltip: "Consuma para descrubir todo conocimientos de %s.", mod_name: "Hexcasting", }, @@ -122,8 +121,8 @@ }, akashic_: { record: "Registro akáshico", - bookshelf: "Estantería akáshica", - connector: "Ligadura akáshica", + bookshelf: "Estantería akáshico", + connector: "Ligadura akáshico", }, slate: { "": "Pizarra", @@ -188,42 +187,39 @@ }, "effect.hexcasting": { enlarge_grid: "Claridad", - shrink_grid: "Nublado", + shrink_grid: "Nubladidad", }, "item.minecraft.potion.effect": { enlarge_grid: "Poción de claridad", enlarge_grid_long: "Poción de claridad", enlarge_grid_strong: "Poción de claridad", - shrink_grid: "Poción de nublado", - shrink_grid_long: "Poción de nublado", - shrink_grid_strong: "Poción de nublado", + shrink_grid: "Poción de Nubladidad", + shrink_grid_long: "Poción de Nubladidad", + shrink_grid_strong: "Poción de Nubladidad", }, "item.minecraft.splash_potion.effect": { enlarge_grid: "Poción de claridad arrojadiza", enlarge_grid_long: "Poción de claridad arrojadiza", enlarge_grid_strong: "Poción de claridad arrojadiza", - shrink_grid: "Poción de nublado arrojadiza", - shrink_grid_long: "Poción de nublado arrojadiza", - shrink_grid_strong: "Poción de nublado arrojadiza", + shrink_grid: "Poción de Nubladidad arrojadiza", + shrink_grid_long: "Poción de Nubladidad arrojadiza", + shrink_grid_strong: "Poción de Nubladidad arrojadiza", }, "item.minecraft.lingering_potion.effect": { enlarge_grid: "Poción de claridad persistente", enlarge_grid_long: "Poción de claridad persistente", enlarge_grid_strong: "Poción de claridad persistente", - shrink_grid: "Poción de nublado persistente", - shrink_grid_long: "Poción de nublado persistente", - shrink_grid_strong: "Poción de nublado persistente", + shrink_grid: "Poción de Nubladidad persistente", + shrink_grid_long: "Poción de Nubladidad persistente", + shrink_grid_strong: "Poción de Nubladidad persistente", }, "item.minecraft.tipped_arrow.effect": { enlarge_grid: "Flecha de claridad", enlarge_grid_long: "Flecha de claridad", enlarge_grid_strong: "Flecha de claridad", - shrink_grid: "Flecha de nublado", - shrink_grid_long: "Flecha de nublado", - shrink_grid_strong: "Flecha de nublado", - }, - "gui.hexcasting": { - spellcasting: "Cuadrícula Hex", + shrink_grid: "Flecha de Nubladidad", + shrink_grid_long: "Flecha de Nubladidad", + shrink_grid_strong: "Flecha de Nubladidad", }, "tag.hexcasting": { staves: "Bastónes hex", @@ -255,20 +251,20 @@ option: { common: { dustMediaAmount: { - "": "Cantidad de media polvo", - "@Tooltip": "Cuanta media un polvo de amatista vale", + "": "Cantidad de medio polvo", + "@Tooltip": "Cuanta medio un polvo de amatista vale", }, shardMediaAmount: { - "": "Cantidad de media fragmento", - "@Tooltip": "Cuanta media un fragmento de amatista vale", + "": "Cantidad de medio fragmento", + "@Tooltip": "Cuanta medio un fragmento de amatista vale", }, chargedCrystalMediaAmount: { - "": "Cantidad de media crystal cargado", - "@Tooltip": "Cuanta media un fragmento de amatista crystal vale", + "": "Cantidad de medio crystal cargado", + "@Tooltip": "Cuanta medio un fragmento de amatista crystal vale", }, mediaToHealthRate: { "": "Media a Salud tasa", - "@Tooltip": "Cuantos puntos de media un mitad de corazon vale cuando lanzar desde PV", + "@Tooltip": "Cuantos puntos de medio un mitad de corazon vale cuando lanzar desde PV", }, cypherCooldown: { "": "Tiempo de reutilización de las cifra", @@ -310,41 +306,89 @@ }, alwaysShowListCommas: { "": "Mostrar siempre las comas de la lista", - "@Tooltip": "¿Se separarán todos los tipos de iotas con comas dentro de las listas? (Por normal, las iotas de patrones no usan comas)", + "@Tooltip": "Si se separarán todos los tipos de iotas con comas dentro de las listas (Por normal, las iotas de patrones no usan comas)", + }, + advancedTooltipsShowsIotaNBT: { + "": "Descripción avanaza de ítems muestra NBT de Iota", + "@Tooltip": "Si activando descripción avanaza de ítems (F3+H) debería mostrar el entero NBT de iotas guardado en ítems como centros y libros de hechizos", + }, + staticActiveSlates: { + "": "Pizarras estáticas activadas", + "@Tooltip": "Si los patrones en las pizarras activas deben renderizarse sin oscilaciones. (mejora el rendimiento con una gran cantidad de slates activos)", }, }, server: { opBreakHarvestLevel: { - "": "Nivel de cosecha de rompter", - "@Tooltip": "El nivel de cosechar del Rotura Bloque hechizo.\n0 = madera, 1 = piedra, 2 = hierro, 3 = diamante, 4 = netherita.", + "": "Nivel de cosecha de romper", + "@Tooltip": "El nivel de cosechar del hechizo Romper Bloque.\n0 = madera, 1 = piedra, 2 = hierro, 3 = diamante, 4 = netherita.", }, maxOpCount: { - "": "Maxima cuneta de acciónes", - "@Tooltip": "El numero maximo de acción que puede se ejecutar en un tick, para evitar colgar el servidor.", + "": "Maxima cuenta de acciónes", + "@Tooltip": "El numero maximo de acciónes que puede se ejecutar en un tic, para evitar colgar el servidor.", }, maxSpellCircleLength: { - "": "Maximo longitud de círculo de hechizos", - "@Tooltip": "El numero maximo de pizzaras en un circilo de hechizos", + "": "Maxima longitud de círculo de hechizos", + "@Tooltip": "El numero maximo de pizzaras en un circulo de hechizos", }, actionDenyList: { "": "Lista de acciones denegadas", - "@Tooltip": "Ubicaciones de recursos de acciones no permitidas. Intentar lanzar uno de estos resultará en un percance. Por ejemplo, hexcasting:get_caster evitará el Reflejo de mente.", + "@Tooltip": "Ubicaciones de recursos de acciones prohibidas. Intentar lanzar uno de estos resultará en un percance. Por ejemplo, hexcasting:get_caster evitará Reflejo Mental.", }, circleActionDenyList: { "": "Lista de acciones circulo denegadas", - "@Tooltip": "Ubicaciones de recursos de acciones no permitidas dentro de círculos. Intentar lanzar uno de estos desde un círculo resultará en un percance.", + "@Tooltip": "Ubicaciones de recursos de acciones prohibidas dentro de círculos. Intentar lanzar uno de estos desde un círculo resultará en un percance. Por ejemplo, hexcasting:get_caster\" impedirá Reflejo Mental.", }, villagersOffendedByMindMurder: { "": "Aldeanos ofendidos por asesinato mental", "@Tooltip": "Si los aldeanos deberían enojarse con el jugador cuando otros aldeanos están desomente", }, scrollInjectionsRaw: { - "": "Inyection de pergaminos pesos", - "@Tooltip": "Mapa los nombres de las tablas de boting a la cantidad de patronoes por mundo en pergaminos que deven inclurse en ellas. Hay alreador un 50$ de posibilidad de obtener un pergamino en un baúl determinado aqui; una vez que se cumple, se generan entre 1 y esa cantida ded pergaminos.", + "": "Pesos para la inyección de pergaminos", + "@Tooltip": "Mapa los nombres de las tablas de botín a la cantidad de patronoes por-mundo en pergaminos que deven inclurse en ellas. Hay alreador 50% de posibilidad de obtener un pergamino en un baúl determinado aqui; una vez que se cumple, se generan entre 1 y esa cantida de pergaminos.", }, amethystShardModification: { - "": "Cambio de tasa de caída de fragmentos de amatista", - "@Tooltip": "Cuánto aumenta/disminuye el número de fragmentos de amatista que caen de los cúmulos.", + "": "Cambio en la tasa de obtención de fragmentos de amatista", + "@Tooltip": "En qué medida aumenta o disminuye la cantidad de fragmentos de amatista que se obtienen de los cúmulos.", + }, + globalCostScaling: { + "": "Factor de escala de costes global", + "@Tooltip": "Todos los costos de medio, a excepción de las acciones incluidas en la etiqueta `#hexcasting:cannot_modify_cost`, se multiplicarán por este valor. Si deseas modificar el coste de una acción en esa etiqueta, utiliza la lista de escala de costes por acción.", + }, + costRescaleListRaw: { + "": "Factores de escala de costes por acción", + "@Tooltip": "Asocia las ubicaciones de los recursos con el factor de escala para el costo de medio a esa acción específica. Por ejemplo, hexcasting:add_motion hará que impulso cueste el triple.", + }, + greaterTeleportSplatsItems: { + "": "Teletransporte Mayor dispersar ítems", + "@Tooltip": "Si ítems deberían dispersar del inventario del jugador al usar Teletransporte Mayor", + }, + doesTrueNameHaveAmbit: { + "": "Tiene ámbito el Nombre Verdadero", + "@Tooltip": "Si los Nombres Verdaderos (es decir, referencias de entidades a un jugador) deberían permitir seleccionar como objetivo al jugador referenciado incluso fuera del ámbito normal", + }, + tpDimDenylist: { + "": "Lista de denegación de dimensiones a teleportar", + "@Tooltip": "Ubicaciones de recursos en dimensiones donde no está permitido teleportar", + }, + traderScrollChance: { + "": "Probabilidad de pergamino del Vendedor ambulante", + "@Tooltip": "La probabilidad de que los Vendedores ambulante vendan un Pergamino Antiguo", + }, + loreInjectionsRaw: { + "": "Lugares de inyección de relatos", + "@Tooltip": "Enumera las tablas de botín a las que se deben añadir los fragmentos de relato.", + }, + loreChance: { + "": "Probabilidad de fragmentos de relato", + "@Tooltip": "La probabilidad de que aparezcan fragmentos de relatos en cualquiera de las tablas de botín arriba.", + }, + cypherInjectionsRaw: { + "": "Sitios de inyección de Cifras antigua", + "@Tooltip": "Enumera las tablas de botín a las que se deberían añadir las cifras antigua.", + }, + cypherChance: { + "": "Problablilidad de Cifras antigua", + "@Tooltip": "La probabilidad de que aparezcan Cifras antiguas en cualquiera de las tablas de botín arriba.", }, }, }, @@ -352,13 +396,55 @@ "advancement.hexcasting:": { root: { "": "Estudio de Hexcasting", - desc: "Encuentra y mina una forma concentrada de media crecidendo profundo de la tierra.", + desc: "Encuentra y mina una forma concentrada de medio crecidendo profundo de la tierra.", }, creative_unlocker: { "": "¡PODER ILIMITADO!", + desc: "Encontré el objeto de depuración creativo.", }, lore: { - "": "Relatos del Magificio", + "": "Relatos de Hexcasting", + desc: "Lee un fragmento de relatos", + }, + enlightenment: { + "": "Alcanzar la iluminación", + }, + wasteful_cast: { + "": "No desperdiciar...", + }, + big_cast: { + "": "...No Querer", + desc: "Lanzar un único hechizo que requiera una cantidad verdaderamente enorme de medio.", + }, + y_u_no_cast_angy: { + "": "Desviación ciega", + desc: "Intenta lanzar un hechizo desde un pergamino, pero fracasa.", + }, + opened_eyes: { + "": "Ojos abiertos", + }, + "lore/": { + inventory: "Registro de restauración 72", + cardamom1: { + "": "Cardamom Steles #1", + desc: "Carta de Cardamom Steles a su padre, #1", + }, + cardamom2: { + "": "Cardamom Steles #2", + desc: "Carta de Cardamom Steles a su padre, #2", + }, + cardamom3: { + "": "Cardamom Steles #3", + desc: "Carta de Cardamom Steles a su padre, #3, 1/2", + }, + cardamom4: { + "": "Cardamom Steles #3 pt2", + desc: "Carta de Cardamom Steles a su padre, #3, 2/2", + }, + cardamom5: { + "": "Cardamom Steles #4", + desc: "Carta de Cardamom Steles a su padre, #4", + }, }, }, "matcher.hexcasting.pattern": { @@ -368,34 +454,719 @@ tooltip: { abacus: { "": "%d", + reset: "Reinicia a 0", + "reset.nice": "nais", }, list_contents: "[%s]", + spellbook: { + page: { + "": "Página seleccionada %d/%d", + sealed: "Página seleccionada %d/%d (%s)", + }, + page_with_name: { + "": "Página seleccionada %d/%d (\"%s\")", + sealed: "Página seleccionada %d/%d (\"%s\") (%s)", + }, + empty: { + "": "Vacío", + sealed: "Vacío (%s)", + }, + sealed: "Sellado", + }, + scroll: { + needs_purchase: "Compra para ver el patrón", + pattern_not_loaded: "Colocar en el inventario para cargar el patrón", + "recalc_warning.line1": "¡Aún no se ha calculado el patrón por mundo para %s!", + "recalc_warning.line2": "Por favor, ejecuta /hexcasting recalcPatterns, y luego obtén un nuevo pergamino.", + }, + circle: { + no_exit: "El flujo de medio no pudo encontrar una salida en %s", + many_exits: "El flujo de medio tenía demasiadas salidas en %s", + no_closure: "El flujo de medio no podrá regresa al Impetuoso en %s", + }, + lens: { + "pattern.invalid": "Patrón inválido", + bee: { + "": "%s abejas", + single: "%s abeja", + }, + "impetus.redstone.bound": { + "": "Atado a %s", + none: "Desatado", + }, + akashic: { + "bookshelf.location": "Registro en %s", + "record.count": { + "": "%s iotas almacenadas", + single: "%s iota almacenado", + }, + }, + }, + brainsweep: { + min_level: "Nivel %s o superior", + level: "Nivel %s", + product: "Cuerpo sin mente", + }, + media: "%d polvo", + media_amount: "Contiene: %s (%s)", + "media_amount.advanced": "Contiene: %s (%s)", + null_iota: "Nulo", + boolean_true: "Verdadero", + boolean_false: "Falso", + jump_iota: "[Salto]", }, action: { "hexcasting:": { - get_caster: "Reflejo de mente", - break_block: "Rotura Bloque", - "craft/battery": "Craftear frasco", - edify: "Edificar arbolito", - brainsweep: "Desollar mente", + get_caster: "Reflejo Mental", + break_block: "Romper Bloque", + edify: "Edificar Arbolito", + brainsweep: "Desollar Mente", + add_motion: "Impulso", + "teleport/great": "Teletransporte Mayor", + blink: "Parpadeo", + "sentinel/": { + create: "Invocar Centinela", + "create/great": "Invocar Centinela Mayor", + destroy: "Desterrar Centinela", + get_pos: "Localizar Centinela", + wayfind: "Orientar Centinela", + }, + "const/": { + "null": "Reflejo Nulario", + "true": "Reflejo Verdadero", + "false": "Reflejo Falso", + "vec/": { + px: "Reflejo Vector +X", + py: "Reflejo Vector +Y", + pz: "Reflejo Vector +Z", + nx: "Reflejo Vector -X", + ny: "Reflejo Vector -Y", + nz: "Reflejo Vector -Z", + "0": "Reflejo Vector Zero", + }, + "double/": { + pi: "Reflejo de Arco", + tau: "Reflejo de Circulo", + e: "Reflejo de Euler", + phi: "Reflejo Armoníco", + }, + }, + "entity_pos/eye": "Purificación de Brújula", + "entity_pos/foot": "Purificación de Brújula II", + get_entity_look: "Purificación de Alidada", + get_entity_height: "Purificación del Estadiómetro", + get_entity_velocity: "Purificación del Paso", + raycast: "Destilación del Arquero", + "raycast/axis": "Destilación del Arquitecto", + "raycast/entity": "Destilación del Explorador", + get_media: "Reflejo de Medio", + "circle/": { + impetus_pos: "Reflejo de Waystone", + impetus_dir: "Reflejo de Magnetita", + "bounds/min": "Reflejo del Pliegue Menor", + "bounds/max": "Reflejo del Pliegue Mayor", + }, + append: "Destilación de integración", + unappend: "Descomposición de Derivación", + index: "Destilación Selectiva", + singleton: "Purificación de Solo", + empty_list: "Reflejo vacío", + reverse: "Purificación retrógrada", + last_n_list: "Gambito del Rebaño", + splat: "Desintegración del Rebaño", + index_of: "Destilación del Localizador", + remove_from: "Destilación del Escisor", + slice: "Exaltación de Elección", + replace: "Exaltación del Cirujano", + get_entity: "Purificación de Entidad", + "get_entity/": { + animal: "Purificación de Entidad: Animal", + monster: "Purificación de Entidad: Monstruo", + item: "Purificación de Entidad: ítems", + player: "Purificación de Entidad: Jugador", + living: "Purificación de Entidad: Ser vivo", + }, + zone_entity: "Destilación de Zona: Cualquier", + "zone_entity/": { + animal: "Destilación de Zona: Animal", + monster: "Destilación de Zona: Monstruo", + item: "Destilación de Zona: ítems", + player: "Destilación de Zona: Jugador", + living: "Destilación de Zona: Ser vivo", + }, + type_equals: "Destilación de Similitud", + type_not_equals: "Destilación de Disimilitud", + "compare_block/": { + lenient: "Destilación del Topógrafo", + strict: "Destilación del Inspector", + }, + compare_entity: "Destilación del Taxónomo", + "compare_item/": { + lenient: "Destilación del Clasificador", + strict: "Destilación de Apilamiento", + }, + swap: "Gambito del Bufón", + rotate: "Gambito de Rotación", + rotate_reverse: "Gambito de Rotación II", + duplicate: "Descomposición Géminis", + over: "Gambito del Buscador", + tuck: "Gambito del Enterrador", + "2dup": "Gambito de los Dioscuros", + duplicate_n: "Gambito de Géminis", + stack_len: "Reflejo del Rebaño", + fisherman: "Gambito del Pescador", + "fisherman/copy": "Gambito del Pescador II", + swizzle: "Gambito del Estafador", + unique: "Purificación de Unicidad", + and: "Destilación de Conjunciones", + or: "Destilación de Disyunción", + xor: "Destilación de Exclusión", + greater: "Destilación Maximus", + less: "Destilación Mínima", + greater_eq: "Destilación Maximus II", + less_eq: "Destilación Mínima II", + equals: "Destilación de Igualdad", + not_equals: "Destilación de Desigualdad", + not: "Purificación de Negación", + add: "Destilación Aditivo", + sub: "Destilación Sustractiva", + mul: "Destilación Multiplicativa", + div: "Destilación de División", + abs: "Purificación de Longitud", + pow: "Destilación de Potencia", + floor: "Purificación de Piso", + ceil: "Purificación de Techo", + modulo: "Destilación de Módulo", + construct_vec: "Exaltación Vectorial", + deconstruct_vec: "Desintegración Vectorial", + sin: "Purificación Seno", + cos: "Purificación Coeno", + tan: "Purificación Tangente", + arcsin: "Purificación de Seno Inverso", + arccos: "Purificación de Coseno Inverso", + arctan: "Purificación de Tangente Inverso", + arctan2: "Destilación de Tangente Inverso", + random: "Reflejo de Entropía", + logarithm: "Destilación Logarítmica", + coerce_axial: "Purificación Axial", + read: "Reflejo de Escriba", + "read/entity": "Purificación del Cronista", + "read/local": "Reflejo de Munin", + write: "Gambito de Escriba", + "write/entity": "Gambito del Cronista", + "write/local": "Gambito de Hugin", + readable: "Reflejo del Auditor", + "readable/entity": "Purificación del Auditor", + writable: "Reflejo de Evaluador", + "writable/entity": "Purificación del Evaluador", + "akashic/read": "Destilación de Akasha", + "akashic/write": "Gambito de Akasha", + print: "Revelar", + beep: "Hacer Nota", + explode: "Explosión", + "explode/fire": "Bola de fuego", + place_block: "Colocar Bloque", + "craft/cypher": "Craftear Cifra", + "craft/trinket": "Craftear Baratija", + "craft/artifact": "Craftear Artefacto", + recharge: "Recargar Ítems", + erase: "Borrar Ítems", + create_water: "Crear Agua", + destroy_water: "Destruir líquido", + ignite: "Encender", + extinguish: "Extinguir Area", + conjure_block: "Conjurar Bloque", + conjure_light: "Conjurar Luz", + colorize: "Internalizar Pigmento", + cycle_variant: "Glamor del Lanzador", + "potion/": { + weakness: "Nadir del Sol Blanco", + levitation: "Nadir del Sol Azul", + wither: "Nadir del Sol Negro", + poison: "Nadir del Sol Rojo", + slowness: "Nadir del Sol Verde", + regeneration: "Cénit del Sol Blanco", + night_vision: "Cénit del Sol Azul", + absorption: "Cénit del Sol Negro", + haste: "Cénit del Sol Rojo", + strength: "Cénit del Sol Verde", + }, + "flight/range": "Vuelo del Anacoreta", + "flight/time": "Vuelo del Caminante", + "flight/can_fly": "Purificación del Aviador", + lightning: "Invocar Relámpago", + summon_rain: "Invocar lluvia", + dispel_rain: "Disipar Lluvia", + create_lava: "Crear Lava", + escape: "Consideración", + runtime_escape: "Contemplación", + open_paren: "Introspección", + close_paren: "Retrospección", + open_n_parens: "Meditación", + close_all_parens: "Recuerdar", + read_into_parens: "Interjección", + undo: "Evanescencia", + eval: "Gambito de Hermes", + "eval/cc": "Gambito de Iris", + for_each: "Gambito de Thot", + halt: "Gambito de Caronte", + thanatos: "Reflejo de Tánatos", + "interop/": { + "gravity/": { + get: "Purificación Gravitacional", + set: "Alterar Gravedad", + }, + "pehkui/": { + get: "Purificación de Gulliver", + set: "Alterar Escala", + }, + }, + }, + "book.hexcasting:": { + get_entity_height: "Prfn. del Estadiómetro", + "get_entity/": { + animal: "Prfn. de Entidad: Animal", + monster: "Prfn. de Entidad: Monstruo", + item: "Prfn. de Entidad: ítems", + player: "Prfn. de Entidad: Jugador", + living: "Prfn. de Entidad: Ser vivo", + }, + zone_entity: "Dstl. de Zona: Cualquier", + "zone_entity/": { + animal: "Dstl. de Zona: Animal", + monster: "Dstl. de Zona: Monstruo", + item: "Dstl. de Zona: ítems", + player: "Dstl. de Zona: Jugador", + living: "Dstl. de Zona: Ser Vivo", + }, + mul: "Dstl. Multiplicativa", + div: "Dstl. Division", + arcsin: "Prfn. de Seno Inverso", + arccos: "Prfn. de Coseno Inverso", + arctan: "Prfn. de Tangente Inverso", + arctan2: "Dstl. de Tangente Inverso", + "const/vec/": { + x: "Rflo. Vector +X/-X", + y: "Rflo. Vector +Y/-Y", + z: "Rflo. Vector +Z/-Z", + }, + "read/entity": "Prfn. del Cronista", + bool_to_number: "Prfn. del Numerólogo", + number: "Reflejo Numérico", + mask: "Gambito del Contador", }, }, mishap: { "": "%s: %s", + bad_brainsweep: "El %s rechazó la mente del ser", + already_brainswept: "La mente ya ha sido utilizada", + no_spell_circle: "necesita un círculo de hechizos", + disallowed_circle: "%s ha sido prohibido en los círculos de hechizos por los administradores del servidor", + disallowed: "%s ha sido prohibido por los administradores del servidor", + disallowed_generic: "Ese patrón ha sido prohibido por los administradores del servidor", + disallowed_circle_generic: "Ese patrón ha sido prohibido en los círculos de hechizos por los administradores del servidor", + others_name: "Intentó invadir la privacidad del la alma de %s", + "others_name.self": "Intenté divulgar mi Nombre con demasiada imprudencia", + divide_by_zero: { + divide: "Intenté dividir %s entre %s", + exponent: "Se intentó elevar %s a la potencia de %s", + zero: { + "": "cero", + power: "potencia cero", + vec: "el vector cero", + }, + power: "potencia de %s", + sin: "el seno de %s", + cos: "el coseno de 2", + logarithm: "Intentó obtener el logaritmo de %s en base %s", + }, + invalid_operator_args: { + one: "se encontró un iota inesperado en el índice %d de la pila: %s", + many: "se obtuvieron %d iotas inesperadas en los índices %d-%d de la pila: %s", + }, + no_akashic_record: "No hay Registro akáshico en %s", + unknown: "lanzó una excepción (%s). Esto es un bug en el mod.", + stack_size: "Excedió el límite de tamaño de la pila", + bad_caster: "Intenté ejecutar un patrón que requiere una mente superior", + invalid_value: { + "": "esperaba %s en el índice %s de la pila, pero se obtuvo %s: %s", + "class": { + double: "un número", + boolean: "un booleano", + vector: "un vector", + list: "una lista", + pattern: "un patrón", + garbage: "basura", + "null": "nulo", + entity: { + "": "una entidad", + mob: "una criatura", + item: "una entidad de ítems", + item_holder: "una entidad que contiene ítems", + player: "un jugador", + living: "una entidad viva", + }, + entity_or_vector: "una entidad o un vector", + unknown: "(desconocido, vaya, esto es un bug)", + continuation: "un iota salto", + }, + numvec: "un número o un vector", + numlist: "un número entero o una lista", + double: { + positive: { + "": "un número positivo", + less: "un número positivo menor que %d", + "less.equal": "un número positivo menor o igual a %d", + }, + between: "un número entre %d y %d", + }, + int: { + "": "un número entero", + positive: { + "": "un entero positivo", + less: "un entero positivo menor que %d", + "less.equal": "un entero positivo menor o igual a %d", + }, + between: "un número entero entre %d y %d", + }, + evaluatable: "algo evaluable", + bool_commute: "un valor booleano, 0 o 1", + }, + invalid_pattern: "El patrón %s no está asociado a ninguna acción", + invalid_pattern_generic: "Ese patrón no está asociado a ninguna acción", + unescaped: "Se esperaba evaluar un patrón, pero se evaluó %s en su lugar", + not_enough_args: "se esperaban %s o más argumentos, pero la pila tenía una altura de solo %s", + bad_block: { + "": "Esperaba %s en %s, pero obtuvo %s", + sapling: "un arbolito", + replaceable: "un lugar donde colocar un bloque", + }, + "circle.bool_directrix": { + no_bool: "La iota encontrada en %s era %s, no una bool", + empty_stack: "la pila estaba vacía en %s", + }, + no_args: "esperaba %s o más argumentos, pero la pila estaba vacía", + needs_parens: "No utilizó introspección en primer lugar", + wrong_dimension: "no se puede ver %s desde %s", + entity_too_far: "%s está fuera de rango", + immune_entity: "no se puede modificar %s", + eval_too_much: "Se evaluaron demasiados patrones", + no_item: "necesita %s pero no consiguió nada", + "no_item.offhand": "necesita %s en la otra mano, pero consiguió nada", + bad_entity: "requiere %s, pero se consiguió %s", + invalid_spell_datum_type: "Intentó utilizar un valor de tipo no válido como SpellDatum: %s (clase %s). Esto es un bug en el mod.", + location_: { + too_far: "%s está fuera de rango", + out_of_world: "%s no está dentro del mundo", + too_close_to_out: "%s está demasiado cerca del límite del mundo", + forbidden: "%s esta prohibido para ti", + bad_dimension: "Esta dimensión prohíbe esa acción", + }, + bad_item: { + hotbar: "necesita %s en algún lugar de la barra de ítems", + iota: { + "": "un lugar para almacenar iotas", + read: "un lugar para leer iotas de", + write: "un lugar para escribir iotas a", + readonly: "un lugar que acepte %s", + }, + media: "un ítem que contiene medio", + only_one: "exactamente un ítem", + eraseable: "un ítem borrable", + bottle: "un fraco", + rechargable: "un ítem recargable", + colorizer: "un pigmento", + variant: "un ítem con variantes", + placeable: "un ítem colocable", + }, }, category: { - casting: { - "": "Hex Casting", + basics: { + "": "Empezando", + }, + items: { + "": "ítems", + desc: "Dedico esta sección a los ítems mágicos y misteriosos que pueda encontrar en mis estudios.", + }, + lore: { + "": "Relatos", + desc: "He descubierto algunas cartas y textos que no guardan relación directa con mi arte. Sin embargo, creo que tal vez pueda deducir parte de la historia del mundo a partir de ellos. A ver...", + }, + interop: { + "": "Compatibilidad entre mods", + desc: "¡Parece que he instalado algunos mods con los que Hexcasting interactúa! Los he detallado aquí.", + }, + patterns: { + "": "Patrones", + desc: "Una lista de todos los patrones que he descubierto, y como tambien lo que hacen.", + }, + spells: { + "": "Hechizos", + desc: "Patrones y acciones que producen un efecto mágico en el mundo.", + }, + great_spells: { + "": "Hechizos Mayores", + desc: "Se dice que los hechizos aquí catalogados poseen un poder y una dificultad legendarios. Al parecer, han quedado registrados muy $(l:items/scroll)escasamente/$ (y, según los textos, por una buena razón). Aunque, probablemente, no sean más que los desvaríos de tradicionalistas ya extintos; al fin y al cabo, un patrón es un patrón.$(br2)¿Qué podría salir mal?", + }, + greatwork: { + desc: "He visto... tanto. He... experimentado... la aniquilación, la deconstrucción y la reconstrucción. He visto a los átomos del mundo gritar mientras eran invertidos, subvertidos y reducidos a energía. He visto, he visto, he... s$(k)skibidi toilet 67 triple t/$", }, }, page: { mishaps2: { "bad_mindflay.title": "Desomente inerte", + "no_circle.title": "Falta círculo de hechizos", + no_circle: "Intenté lanzar una acción que requiere un círculo de hechizos sin tener uno.$(br2)Provoca chispas azul claro y vuelca mi inventario al suelo.", + "no_record.title": "Falta Registro akáshico", }, potions: { - "effects.header": "claridad and nublado", + "effects.header": "Claridad Y Nubladidad", + }, + mishaps: { + "disabled.title": "Acción prohibida", + disabled: "Intenté lanzar una acción que ha sido prohibida por un administrador del servidor.$(br2)Provoca chispas negras.", + "invalid_pattern.title": "Patrón inválido", + "not_enough_iotas.title": "Insuficientes iotas", + "stack_size.title": "Demasiadas Iotas", + "other.title": "Fallo catastrófico", + }, + creative_items: { + "1": "He inventado algunos artículos fantásticos que solo pueden adquirirse mediante medios $(italic)creativos/$.", + debug_media: { + title: "debug media", + desc: "Al renombrar el $(#74b3f2)Cubo de medio/$ a «debug media», recibiré información en la ventana de chat sobre la cantidad de medio consumido.", + }, + }, + geodes: { + "1": "¡Ajá! Mientras excavaba a gran profundidad bajo tierra, encontré una geoda enorme que resonaba con energía; una energía que presionaba mi cráneo y mis pensamientos. Y ahora, sostengo esa presión en mi mano, en forma sólida. Eso lo confirma. Este $(italic)debe/$ ser el lugar del que hablan las leyendas, donde se acumula _medio. Estos $(l:items/amethyst)$(item)cristales de amatista/$ deben ser una forma práctica y sólida de _Medio.", + "2": "Parece que, además de los $(l:items/amethyst)$(item)Fragmentos de amatista/$ que he visto anteriormente, estos cristales también pueden soltar fragmentos de $(l:items/amethyst)$(item)Polvo de amatista/$, así como estos $(l:items/amethyst)$(item)Cristales de Amatista cargada/$. Da la impresión de que tendré más probabilidades de encontrar los $(l:items/amethyst)$(item)Cristales de Amatista cargada/$ si utilizo un pico con Fortuna.", + "3": "Mientras contemplo la belleza del cristal, siento cómo surgen conexiones vertiginosas en mi mente. Es como si la esencia que flota en el aire entra a mí, otorgándome poder y claridad... Es una sensación maravillosa.$(br2)¡Por fin, mis estudios sobre lo arcano empiezan a cobrar sentido!$(p)Permíteme releer esas viejas leyendas ahora que sé qué es lo que estoy viendo.", + }, + couldnt_cast: { + "1": "¡Argh! ¿Por qué no me deja lanzar el hechizo?$(br2)El pergamino que encontré rezuma autenticidad. Puedo $(italic)sentir/$ cómo vibra en el pergamino: el patrón es auténtico, o tan auténtico como puede serlo. El hechizo está $(italic)ahí mismo/$.$(p)Pero es como si estuviera al otro lado de una fina membrana. Lo invoqué, intentó manifestarse, pero $(italic)NO PUDO/$.", + "2": "Sentí que la barrera tal vez se había debilitado apenas un poco por la fuerza que ejercí sobre el hechizo; sin embargo, a pesar de mis mayores esfuerzos —mi concentración más profunda, mi amatista más selecta, mis trazos más precisos—, se $(italic)niega/$ a cruzar la barrera. Es exasperante.$(p)$(italic)¿Aquí/$ es donde terminan mis estudios arcanos? ¿Condenado a la impotencia, condenado a perder los poderes que me corresponden por derecho?$(br2)Debería respirar hondo. Debería meditar sobre lo que he aprendido, aunque no haya sido mucho...", + "3": "...Tras una profunda reflexión... he descubierto un cambio en mí.$(p)Parece que... en lugar de $(l:items/amethyst)$(item)amatista/$, he desbloqueado la capacidad de lanzar hechizos utilizando mi propia mente y energía vital; tal como leí en las antiguas leyendas.$(p)No estoy seguro de por qué puedo hacerlo ahora. Es solo que... esa carga de conocimiento y verdad siempre estuvo ahí, y ahora la veo. La conozco. La soporto.$(br2)Afortunadamente, también percibo mis límites: en mi plenitud, podría extraer de mi salud una cantidad de energía equivalente a unas dos $(l:items/amethyst)$(item)Amatistas cargadas/$.", + "4": "Me estremezco tan solo de pensarlo; hasta ahora, he logrado mantener mi mente mayormente intacta durante mis estudios. Pero la realidad es que formo parte de un vínculo frágil.$(p)Estoy conectado con otro extremo: un lado cuyos límites se han debilitado a causa de aquel trauma. Un lugar donde acciones sencillas se traducen en gloria eterna.$(p)¿Acaso está mal desear eso para mí?", + }, + start_to_see: { + "1": "Los textos no mentían. La naturaleza cobró lo suyo.", + }, + "101": { + "4.header": "Un ejemplo", + }, + vectors: { + "1": "Parece que necesitaré manejarme con destreza con los vectores si quiero avanzar en mis estudios. Un vector es un conjunto de tres números que puede utilizarse para representar diversas cosas: por lo general, una posición en el mundo, un desplazamiento de una posición a otra o una dirección en el espacio. Las páginas siguientes ofrecen un resumen básico de cómo funcionan los vectores y qué puedo hacer con ellos.", + "11.link_text": "3blue1brown", + }, + staff: { + "crafting.header": "Bastónes", + }, + pigments: { + "colored.crafting.header": "Pigmentos cromáticos", + "colored.crafting.desc": "Pigmentos de todos los colores del arcoíris.", + }, + spellcircles: { + "teleport_circle.title": "Círculo de teleportar", + }, + numbers: { + example: { + "10.header": "Ejemplo 1", + }, }, }, + subtitles: { + "spellcircle.add_pattern": "Círculo de hechizos crepita", + "spellcircle.fail": "Círculo de hechizos se disipa", + casting: { + pattern: { + start: "Iniciando Patrón", + add_segment: "Añadiendo línea", + }, + cast: { + fail: "Percance crujió", + normal: "Acción tararear", + spell: "Hechizo boings", + hermes: "Hermes tañan", + thoth: "Thoth tañan", + }, + }, + "staff.reset": "Lanzamiento reinicia", + abacus: { + "": "Ábaco hace clic", + shake: "ábaco se sacude", + }, + "scroll.dust": "Pergamino se cubre con polvo", + "scroll.scribble": "Pergamino se garabatea", + "impetus.fletcher.tick": "Impetuoso de flechero hace tic", + "impetus.redstone.register": "Impetuoso de sacerdote se timbe", + "impetus.redstone.clear": "Impetuoso de sacerdote despeja", + "lore_fragment.read": "Leer fragmento de relato", + "flight.ambience": "Jugador vuela", + "flight.finish": "Vuelo finaliza", + }, + entry: { + spellcircles: "Círculos de hechizos", + circle_patterns: "Patrónes de los círculos de hechizos", + sentinels: "Centinelas", + media: "Medio", + creative_items: "Creativo solo ítems", + geodes: "Geodas", + couldnt_cast: "Una frustración", + start_to_see: "QUÉ ES LO QUE VI", + vectors: "Introducción a los vectores", + mishaps: "Percances", + stack: "La pila", + naming: "Nombrar acciones", + mishaps2: "Percances iluminados", + amethyst: "Amatista", + staff: "Bastónes", + lens: "Lente de adivinación", + jeweler_hammer: "Martillo de joyero", + thought_knot: "Nudo de Pensiamento", + focus: "Centro", + abacus: "Ábaco", + spellbook: "Libro de hechizos", + scroll: "Pergaminos", + slate: "Pizarras", + ancient_cyphers: "Cifras antigua", + pigments: "Pigmentos", + edified: "Árboles Edificados", + decoration: "Bloques decorativos", + brainsweeping: "Sobre el desollamiento de las mentes", + impetus: "Impetuoses", + directrix: "Directoras", + akashiclib: "Bibliotecas akáshicas", + quenching_allays: "Templar Allays", + fanciful_staves: "Bastónes fantásticos", + readers_guide: "Cómo leer esta sección", + basics_pattern: "Patrones básicos", + numbers: "Literales numéricos", + math: "Matemáticas", + advanced_math: "Matemáticas avanzadas", + consts: "Constantes", + stackmanip: "Manipulación de la Pila", + logic: "Operadores lógicos", + entities: "Entidades", + types: "Tipos", + lists: "Manipulación de listas", + patterns_as_iotas: "Escapando patrones", + advanced_escaping: "Escapes avanzados", + readwrite: "Leyendo y Escribiendo", + meta: "Metaevaluación", + akashic_patterns: "Patrones akáshicos", + itempicking: "Trabajando con ítems", + basic_spell: "Hechizos básicos", + blockworks: "Manipulación de bloques", + nadirs: "Nadirs", + flights: "Vuelo", + weather_manip: "Manipulación del clima", + zeniths: "Cenit", + lore: { + cardamom1: "Cardamom Steles, #1", + cardamom2: "Cardamom Steles, #2", + cardamom3: "Cardamom Steles, #3", + cardamom4: "Cardamom Steles, #4", + cardamom5: "Cardamom Steles, #5", + inventory: "Registro de restauración #72", + }, + interop: { + "": "Interacciones entre mods", + gravity: "Gravity Changer", + pehkui: "Pehkui", + }, + }, + "iota.hexcasting:": { + double: { + desc: "un número", + "": "Número", + }, + "null": { + "": "Nulo", + desc: "un valor nulo", + }, + boolean: { + "": "Booleano", + desc: "un booleano", + }, + entity: { + "": "Entidad", + desc: "una entidad", + }, + list: { + "": "Lista", + desc: "una lista", + }, + pattern: { + "": "Patrón", + desc: "un patrón", + }, + garbage: { + "": "Basura", + desc: "basura", + }, + vec3: { + "": "Vector", + desc: "un vector", + }, + continution: { + "": "Continuación", + desc: "a salto iota", + }, + }, + "pattern.unknown": "Ubicación del recurso de patrón desconocido %s", + debug: { + media_withdrawn: "%s - Medio retirado: %s", + "media_withdrawn.with_dust": "%s - Medio retirado: %s (%s en polvo)", + media_inserted: "%s - Medio insertado: %s", + "media_inserted.with_dust": "%s - Medio insertado: %s (%s en polvo)", + all_media: "Contenido completo", + infinite_media: "Infinito", + }, + loot_hex: { + shatter: "Romper", + kindle: "Encender", + illuminate: "Iluminar", + growth: "Crecimiento", + lunge: "Estocada", + sidestep: "Esquivar", + ascend: "Ascender", + blink: "Parpadeo", + blastoff: "Despegue", + radar: "Radar", + detonate: "Detonar", + shockwave: "Onda de choque", + heat_wave: "Ola de calor", + wither_wave: "Ola de Wither", + flight_zone: "Zona de vuelo", + beckon: "Atraer", + }, + message: { + cant_great_spell: "El hechizo falló, de alguna manera... ¿acaso no tengo la habilidad suficiente?", + }, + spelldata: { + onitem: "Contiene: %s", + anything: "Cualquier cosa", + unknown: "Una iota rota", + "entity.whoknows": "Una entidad desconocida", + "akashic.nopos": "El registro propietario no tiene conocimiento de ninguna *iota* aqui (esto es un bug)", + }, + attributes: { + media_consumption: "Consumo de medio", + ambit_radius: "Radio de ámbito del jugador", + sentinel_radius: "Radio de ámbito de la centinela", + scry_sight: "Visión de Adivinación", + feeble_mind: "Mente débil", + grid_zoom: "Tamaño de la cuadrícula de lanzamientos", + }, + "special.hexcasting:": { + number: "Reflejo Numérico: %s", + mask: "Gambito del Contador: %s", + }, + circles: { + no_exit: "El flujo de medio en %s no pudo encontrar una salida", + many_exits: "El flujo de medio en %s tenía demasiadas salidas", + }, + landing: "Parece que he descubierto un nuevo método de artes mágicas, en el que se trazan patrones extraños y salvajes sobre una cuadrícula hexagonal. Me fascina. He decidido comenzar un diario con mis reflexiones y hallazgos.$(br2)$(l:https://forum.petra-k.at/index.php)Enlace al foro/$", }, "itemGroup.hexcasting": { hexcasting: "Hex Casting", @@ -408,4 +1179,29 @@ spellbook_prev: "Anterior página del libro de hechizos", spellbook_next: "Siguiente página del libro de hechizos", }, + "death.attack.hexcasting": { + overcast: { + "": "%s subsumido su mente a energía", + player: "%s subsumido su mente a energía mientras peleaba %s", + }, + }, + "stat.hexcasting": { + media_used: "Medio consumido (en polvo)", + media_overcast: "Medio cubierto (con polvo)", + patterns_drawn: "Patrones trazados", + spells_cast: "Hechizos lanzados", + }, + "command.hexcasting": { + recalc: "Patrones recalculados", + pats: { + listing: "Patrones en este mundo:", + all: "%s recibió todos los %d pergaminos", + "specific.success": "%3$s recibió %1$s con id %2$s", + }, + brainsweep: { + "": "Cerebrobarrido %s", + "fail.badtype": "%s no es una criatura", + "fail.already": "%s ya estaba vacío", + }, + }, } diff --git a/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 index 0967ef424b..70ca8dac4d 100644 --- a/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -1 +1,36 @@ -{} +{ + hexdoc: { + hexcasting: { + title: "Libro Hex", + description: "El libro hex, todo en un lugar.", + }, + renderer: { + palettes: "Paletas", + animated: "animado", + monocolor: "monocromo", + gradient: "gradiente", + segment: "segmento", + "default": "por defecto", + turbo: "turbo", + dark2: "oscuro2", + }, + pattern: { + show: "Haz clic para mostrar el hechizo", + hide: "Haz clic para ocultar el hechizo", + paused: "Pausado", + not_supported: "Su navegador no admite la visualización de patrones. Código del patrón: {}", + }, + villager_requirements: { + any: "El aldeano debe ser un {level} o superior", + professional: "El aldeano debe ser un {level} {profession} o superior", + }, + }, + "block.hexcasting": { + slate: "Pizarra en blanco", + }, + "tag.item.c": { + brown_dye: "Tintes marrones", + glowstone_dusts: "Polvos de piedra luminosa", + wood_sticks: "Palos de madera", + }, +} From c6218047a442c80993921eb4324856f42125d314 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 30/50] chore(l10n): update German translation Co-authored-by: Hexxy Weblate Co-authored-by: miyucomics <72044529+miyucomics@users.noreply.github.com> Language: German Progress: 17.1% (238 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/de/ Translation: Hex Casting/Common --- .../main/resources/assets/hexcasting/lang/de_de.flatten.json5 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Common/src/main/resources/assets/hexcasting/lang/de_de.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/de_de.flatten.json5 index a534c8ce03..bf9abc89de 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/de_de.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/de_de.flatten.json5 @@ -285,6 +285,7 @@ }, spells: { desc: "Zeichen, die die Welt magisch beeinflussen.", + "": "Zauber", }, patterns: { desc: "Eine Liste aller Zeichen, die ich entdeckt habe, sowie ihrer Wirkungen.", @@ -343,6 +344,8 @@ }, "tag.hexcasting": { staves: "Stäbe", + edified_logs: "Beseelter Stamm", + edified_planks: "Beseelte Holzbretter", }, "tag.item.hexcasting": { directrices: "Umlenker", From 895ec22cef460f68b75b8bf8485cfb22037a172b Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 31/50] chore(l10n): update Japanese translation Co-authored-by: Hexxy Weblate Co-authored-by: V. Ntro <251832526+ViktoriaNtro@users.noreply.github.com> Language: Japanese Progress: 100.0% (1386 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/ja/ Translation: Hex Casting/Common --- .../hexcasting/lang/ja_jp.flatten.json5 | 174 ++++++++++++------ 1 file changed, 121 insertions(+), 53 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/ja_jp.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ja_jp.flatten.json5 index fa1878cc23..ebaeecaf47 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/ja_jp.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/ja_jp.flatten.json5 @@ -96,7 +96,7 @@ "": "メディアキューブ", for_emphasis: "無限のメディア", tooltip: "食べると%sのすべての知識を解放できる。", - mod_name: "Hexcasting", + mod_name: "六角術", }, lore_fragment: { "": "伝承の断片", @@ -223,14 +223,14 @@ shrink_grid_strong: "混濁の矢", }, "itemGroup.hexcasting": { - hexcasting: "Hex Casting", - scrolls: "Hex Casting (巻物)", + hexcasting: "六角術", + scrolls: "六角術 (巻物)", }, "gui.hexcasting": { spellcasting: "呪紋グリッド", }, "category.hexcasting": { - binds: "Hex Casting", + binds: "六角術", }, "key.hexcasting": { spellbook_prev: "魔法書: 前のページ", @@ -257,7 +257,7 @@ villager_profession: "村人の職業", }, "text.autoconfig.hexcasting": { - title: "Hexcastingの設定", + title: "六角術の設定", category: { common: "共通", client: "クライアント", @@ -321,11 +321,11 @@ }, alwaysShowListCommas: { "": "リストのコンマを常に表示する", - "@Tooltip": "リストに表示したときにすべてのイオタタイプをコンマで区切るかどうか\n(デフォルトでは、パターンイオタはコンマを使用しない)", + "@Tooltip": "リストに表示したときにすべてのイオタの型をコンマで区切るかどうか\n(デフォルトでは、パターンイオタはコンマを使用しない)", }, advancedTooltipsShowsIotaNBT: { "": "高度な情報がイオタのNBTを表示する", - "@Tooltip": "高度な情報(F3+H)を有効にすると、焦点具や魔法書などのアイテムに保存されているイオタの完全なNBTを表示するかどうか", + "@Tooltip": "高度な情報(F3+H)を有効にすると、焦点具や魔法書などのアイテムに保存されているイオタの\n完全なNBTを表示するかどうか", }, staticActiveSlates: { "": "作動中の石板を静止させる", @@ -347,11 +347,11 @@ }, actionDenyList: { "": "アクション拒否リスト", - "@Tooltip": "許可されていないアクションのリソース位置\nこれらのいずれかを発動しようとすると変事が発生する\nたとえば hexcasting:get_caster は 精神の反射 を防ぐ", + "@Tooltip": "許可されていないアクションのリソース位置\nこれらのいずれかを発動しようとすると変事が発生する\n例えば hexcasting:get_caster は 精神の反射 を防ぐ", }, circleActionDenyList: { "": "魔法陣のアクション拒否リスト", - "@Tooltip": "魔法陣内で許可されていないアクションのリソース位置\n魔法陣からこれらのいずれかを発動しようとすると変事が発生する", + "@Tooltip": "魔法陣内で許可されていないアクションのリソース位置\n魔法陣からこれらのいずれかを発動しようとすると変事が発生する\n例えば hexcasting:get_caster は 精神の反射 を防ぐ", }, greaterTeleportSplatsItems: { "": "高位転送がアイテムを散らす", @@ -397,6 +397,14 @@ "": "アメジストの欠片のドロップ率変更", "@Tooltip": "塊からドロップするアメジストの欠片の数がどれだけ増加/減少するか", }, + globalCostScaling: { + "": "全対価の倍率係数", + "@Tooltip": "#hexcasting:cannot_modify_cost タグ内のアクションを除くすべてのメディアの対価に、この値が掛けられる\nそのタグ内のアクションの対価を変更するには、アクションごとの対価の倍率リストを使用する", + }, + costRescaleListRaw: { + "": "アクションごとの対価の倍率係数", + "@Tooltip": "リソース位置を、そのアクションのメディアの対価の倍率係数にマッピングする\n例えば hexcasting:add_motion 3 は 推進 の対価を3倍にする", + }, }, }, }, @@ -485,8 +493,8 @@ }, }, "matcher.hexcasting.pattern": { - title: "Hex Pattern", - "title.styled": "Hex Pattern ", + title: "呪紋パターン", + "title.styled": "呪紋パターン ", description: "視覚的な六角術のパターン", example: "", }, @@ -547,7 +555,7 @@ abacus: { "": "%d", reset: "0にリセット", - "reset.nice": "nice", + "reset.nice": "ナイス", }, circle: { no_exit: "メディアフローは%sからの出口を見つけられなかった", @@ -583,8 +591,8 @@ stored_hex: "呪紋: ", list_contents: "[%s]", null_iota: "Null", - jump_iota: "[Jump]", - pattern_iota: "HexPattern(%s)", + jump_iota: "[ジャンプ]", + pattern_iota: "呪紋パターン(%s)", boolean_true: "True", boolean_false: "False", }, @@ -712,7 +720,7 @@ duplicate: "双子の分解", over: "探鉱者の仕掛", tuck: "葬儀屋の仕掛", - "2dup": "ディオスクーロイの仕掛", + "2dup": "ディオスクロイの仕掛", duplicate_n: "双子の仕掛", stack_len: "会衆の反射", fisherman: "釣り人の仕掛", @@ -838,6 +846,20 @@ set: "縮尺変更", }, }, + get_media: "メディアの反射", + "compare_block/": { + lenient: "測量士の蒸溜", + strict: "検査官の蒸溜", + }, + compare_entity: "分類学者の蒸溜", + "compare_item/": { + lenient: "選別の蒸溜", + strict: "積層の蒸溜", + }, + runtime_escape: "熟考", + open_n_parens: "瞑想", + close_all_parens: "想起", + read_into_parens: "間投", }, "book.hexcasting:": { get_entity_height: "身長計の浄化", @@ -984,6 +1006,7 @@ item: "アイテムエンティティ", player: "プレイヤー", living: "生きているエンティティ", + item_holder: "アイテムを持つエンティティ", }, entity_or_vector: "エンティティまたはベクトル", unknown: "(不明、ありゃ、これはバグだ)", @@ -1007,7 +1030,7 @@ }, between: "%dから%dまでの整数", }, - evaluatable: "評価可能なもの", + evaluatable: "評価対象", bool_commute: "論理型、0、または1", }, location_: { @@ -1075,7 +1098,7 @@ }, interop: { "": "Mod間の互換性", - desc: "Hex Castingと相互運用できるModが導入されているようだ!ここにそれらの詳細を記してある。", + desc: "六角術と連携するModが導入されているようだ!ここにそれらの詳細を記してある。", }, patterns: { "": "パターン", @@ -1167,6 +1190,9 @@ gravity: "Gravity Changer", pehkui: "Pehkui", }, + whats_a_hex: "呪紋とは", + types: "型", + advanced_escaping: "高度なエスケープ", }, page: { creative_items: { @@ -1212,17 +1238,17 @@ "1": "$(thing)パターン/$とは$(media)メディア/$のグリッドで描き出した道筋である。パターンの6回対称性が、この術の名前の由来なのだろう。$(br2)その一方で、$(thing)アクション/$はパターンが$(italic)やる/$ことである。", "2": "この違いは$(italic)言葉/$と$(italic)意味/$の違いに似ている。文字を混ぜれば言葉ができるが、そのほとんど(「xnopyt」など)は何も意味しない。同様に、$(media)メディア/$で引かれた曲線は厳密にはパターンだが、そのほとんどは何もしない。", "3": "アクションは宇宙を統治する壮大な秩序の法則(「自然界」として擬人化している文書を見たことがある)への指令のようなものだ。それらはおおむね以下のいずれかを実行する:$(li)エンティティの位置を取得するなどの、世界に関する情報の収集。$(li)2つの位置間の距離を取得するなどの、収集した情報の操作。$(li)稲妻や爆発を起こすなど、世界に何らかの魔法の効果を与える。$(br)後の種類のアクションは「スペル」と呼ばれ、大抵はこれが人々をこの術に呼び込む。", - "4": "従って、$(hex)呪紋/$とは自然界へ順番に提供される有効なパターンの配列である。自然界はこれらのパターンを1つずつ読み取り、理解できたなら、世界を思いつきの通りに(あるいは思いつきを自然が考えた通りに)変える。", + "4": "従って、$(hex)呪紋/$とは自然界へ順番に提供される有効なパターンの配列である。自然界はこれらのパターンを1つずつ読み取り、理解できたなら、世界を思いつきの通りに(あるいは思いつきを自然界が考えた通りに)変える。", "5": "一部のアクションは簡単に実行できるが、一部のアクションには結合された$(media)メディア/$の形で費用がかかる。集中した精神のエネルギーが自然界への引数の選別に使用され、要求通りに動くように納得させるのだと思われる。ほとんどのスペルでこの支払いが必要だが、スペルではない一部のアクションでも同様である。$(br2)費用が掛かる場合は、それを各アクションのページに記録してある。", }, iotas: { "1": "自然界の言語における「名詞」を$(thing)イオタ/$という。最も基本的なレベルでは、六角術はイオタを操作する技術だ。$(br2)イオタにはさまざまな型がある:$(li)数値 (一部の文献では「doubles」とも呼ばれている)。$(li)ベクトル: 位置、動作、方向を表し、3つの数値から成る。$(li)論理型(Boolean)、略して「bool」: 抽象的な真(True)か偽(False)を表す。$(li)エンティティ: 自分、ニワトリ、トロッコなど。", - "2": "$(li)作用: 難解なアイデアを表わすと思われる独特な種のイオタ。$(li)パターン: 魔法のアイテムを作成したり、$(italic)他のスペルを描くスペル/$のような、本当に驚異的な芸当に使用される。$(li)リスト: 上記の幾つかを1つのイオタにまとめたもの。", + "2": "$(li)作用: データの欠如($(thing)Null/$)や全くの無意味($(thing)ガベージ/$)などの、さまざまな抽象的な概念を表すイオタ。$(li)パターン: 魔法のアイテムを作成したり、$(italic)他のスペルを描くスペル/$のような、本当に驚異的な芸当に使用される。$(li)リスト: 上記の幾つかを1つのイオタにまとめたもの。", "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)メディア/$のパターンを描ける。パターンを描き上げると、それに対応するアクション(詳細は後程)が実行される。", + "1": "$(hex)呪紋/$を形作るのはかなり難しい...この技術が廃れていったのも無理はない!この記録を慎重に見直そう。$(br2)$(l:items/staff)$(item)杖/$を手に持ち、$(k:use)を押せば$(hex)呪紋/$を始められる。すると目の前に六角形の点のグリッドが現れる。点から点へドラッグして、グリッドに$(media)メディア/$のパターンを描ける。パターンを描き上げると、それに対応するアクション(詳細は後程)が実行される。", "2": "スペルを放つのに十分なパターンを描けば、グリッドは消失し、蓄えていた$(media)メディア/$が解放される。$(k:sneak)を押しながら$(l:items/staff)$(item)杖/$を使用することでもグリッドは空になる。$(br2)では、パターンはどのように機能するか?平たく言えば:$(li)$(italic)パターン/$が実行するのが...$(li)$(italic)アクション/$、それで操作するのが...$(li)$(l:casting/stack)$(italic)スタック/$、それに載っているのが...$(li)$(italic)イオタ/$、これらは単純な情報の単位だ。", "3": "まずは$(thing)パターン/$。欠かせないものだ。これらを用いて自分の周囲の$(media)メディア/$を操作する。特定のパターンが描かれると、$(thing)アクション/$が発生する。アクションが実際に魔法を$(italic)かける/$のだ。すべてのパターンは決まった方法でメディアに影響を与え、それらの影響が最終的に有用であるとき、それをアクションと呼ぶ。$(br2)$(media)メディア/$は不安定だ。無効なパターンを描くと、スタックのどこかに$(thing)ガベージ/$が生じる(詳細は後程)。", "4.header": "例", @@ -1230,7 +1256,7 @@ "5": "$(hex)呪紋/$は(有効な)アクションを順番に描くことで構成される。各アクションはおおむね以下のいずれかを実行する:$(li)周囲の情報を集め、それをスタックの1番上に残す。$(li)集めた情報を操作する(2つの数字を足すなど)。$(li)雷を召喚したり爆発したりといった魔法の効果を行使する(これらのアクションは「スペル」と呼ばれる)。$(p)$(hex)呪紋/$を描き始めると、空のスタックが生成される。アクションはスタックの1番上を操作する。", "6": "例として、$(l:patterns/basics#hexcasting:get_caster)$(action)精神の反射/$は$(italic)自分/$、術者を表すイオタを生成し、スタックの1番上に追加する。$(l:patterns/basics#hexcasting:entity_pos/eye)$(action)羅針盤の浄化/$はスタックの1番上のイオタを取得し、それがエンティティを表すものであれば、そのエンティティの位置を表すイオタに変換する。つまり、これらのパターンを順番に描くと、スタックには自分の位置を表すイオタが生じる。", "7": "$(thing)イオタ/$は自分自身や自分がいる位置などを表せるが、アクションで操作できる別の型のものもある。包括的な一覧は以下のとおり:$(li)数値 (一部の文献では「doubles」とも呼ばれている)。$(li)ベクトル: 位置、動作、方向を表し、3つの数値から成る。$(li)論理型(Boolean)、略して「bool」: 抽象的な真(True)か偽(False)を表す。", - "8": "$(li)エンティティ: 自分、ニワトリ、トロッコなど。$(li)作用: 難解なアイデアを表わすと思われる独特な種のイオタ。$(li)パターン: 魔法のアイテムを作成したり、$(italic)他のスペルを描くスペル/$のような、本当に驚異的な芸当に使用される。$(li)リスト: 上記の幾つかを1つのイオタにまとめたもの。", + "8": "$(li)エンティティ: 自分、ニワトリ、トロッコなど。$(li)作用: データの欠如($(thing)Null/$)や全くの無意味($(thing)ガベージ/$)などの、さまざまな抽象的な概念を表すイオタ。$(li)パターン: 魔法のアイテムを作成したり、$(italic)他のスペルを描くスペル/$のような、本当に驚異的な芸当に使用される。$(li)リスト: 上記の幾つかを1つのイオタにまとめたもの。", "9": "当然、対価なしで得られる物などない。すべてのスペルと一部のアクションには対価として$(media)メディア/$が必要だ。$(br2)理解できる限りでは、$(hex)呪紋/$は自然界に提示したアクションの計画に少し似ている。この例えでは、$(media)メディア/$はそれを支える引数を提供するために使用され、自然界は計画を受け入れて実行する。", "10": "それはさておき、特定の数の$(l:items/amethyst)$(item)アメジスト/$に$(italic)どれくらいの/$価値があるのか正確には調査されていないようだ。言える限りでは、$(l:items/amethyst)$(item)アメジストの欠片/$は$(l:items/amethyst)$(item)アメジストダスト/$約5個分、$(l:items/amethyst)$(item)蓄力アメジスト/$は約10個分だ。$(br2)奇妙なことに、他の形状の$(l:items/amethyst)$(item)アメジスト/$は$(hex)呪紋/$の構成に使用することには適さないようだ。ブロック全体や結晶は固すぎて簡単には$(media)メディア/$に解けないと思われる。", "11": "各アクションは必要な$(media)メディア/$を呪紋の終了時に一括ではなく、即座に消費することも注目に値する。また、アクションは常にアイテム全体を消費する。$(l:items/amethyst)$(item)アメジストダスト/$1個分のみの$(media)メディア/$を必要とするアクションは、インベントリに$(l:items/amethyst)$(item)蓄力アメジスト/$しかなければ、それ全体を消費する。$(br2)故に、スペルを描くためにダストも持っておくのが良いだろう。無駄がなければ、不足もない...", @@ -1241,9 +1267,18 @@ "15": "最後に、スペルの影響範囲は最大で自分の位置から約32ブロックのようだ。その外側のものに影響を与えようとするとスペルは失敗する。$(br2)とはいえ、プレイヤーの参照があれば、どこからでも影響を与えられる。ただし、これは影響を直接与える場合に限る。対象が範囲外にいると、これを使用して対象の周囲の世界に影響を与えることはできない。$(br)そのような参照を明け渡すときには用心するべきだ。友好的な$(hex)六角術師/$はそれを多大な効果や実用性のために使用できるが、悪意ある者がこれで何をするか考えるだけでも恐ろしい。", }, vectors: { - "1": "研究で何かを達成するには、ベクトルを使いこなす必要があるようだ。扱い方が分からないときのために、ベクトルに関する資料をまとめた。$(br2)まずは、この題材の教育動画だ。", - "2": "他にも$(thing)Psiエネルギー/$を操作する魔術師(いわゆる$(br)「スペルスリンガー」)が、乏しいネーミングセンスとは裏腹に、信徒に教えるための非常に効果的なベクトルの授業を行っていたようだ。勝手ながら、次のページに彼らの文書へのリンクを用意した。$(br2)彼らは魔術のために別の言語を使用していたようだ:$(li)「ピース」はアクション$(li)「作動式」はスペル$(li)「演算子」はスペルではないアクション", - "3": "これがリンクだ。", + "1": "研究で何かを達成するには、ベクトルを使いこなす必要があるようだ。ベクトルとは、さまざまなものを表すために使用できる3つの数値の集合であり、通常は世界の中での位置、ある位置からのオフセット、空間内の方向のいずれかを表す。以降のページで、ベクトルがどのように機能し何ができるのかについての基礎的な概要を取り扱う。", + "2": "自分が存在する世界は3次元であるため、$(hex)六角術師/$として扱うすべてのベクトルが3次元である。$(br2)各ベクトルはX成分、Y成分、Z成分を、このとおりの順序で持ち、世界の3つの座標軸に対応している。X軸は東西、Y軸は上下、Z軸は南北だ。", + "3": "ベクトルの最も基本的な用法は、世界の一定の地点を表す$(o)位置/$としての使用だ。ブロックやエンティティの位置、あるいはスペルの対象にしたい空間かもしれない。$(br2)位置ベクトルは実質的に、参照する正確な位置を示す1つの座標の集合だ。ただし、すべてのベクトルが位置を表すわけではない。", + "4": "ブロックの位置のベクトルがあり、その上のブロックを対象にしたい場合は、ベクトルのY成分を1増やす必要がある。これを行うには、値 (0, 1, 0) を持つ2つ目のベクトルを取得し、それを最初のベクトルに加算すれば良い。同様に、2ブロック東のものを対象にしたければ、値 (2, 0, 0) を持つ2つ目のベクトルを足せば良い。これら両方の新たなベクトルは、ある位置から新たな位置までの$(o)オフセット/$を表す。", + "5": "位置ベクトルとオフセットベクトルは異なるものを表すが、それらの間に根本的な違いはなく、すべてのベクトルは単なる数値のグループであることに留意しておこう。実際、必要とあらばすべてのベクトルをどちらかのタイプと見なすこともできる。位置は世界の原点から指定された座標までのオフセットであり、オフセットは任意の開始点を基準とした位置である。", + "6": "$(o)大きさ/$(長さ)と$(o)方向/$の2つはベクトルの重要な性質だ。ベクトルをオフセットとして考えれば最も容易に想像できるかもしれない。$(br2)開始点を選択し、オフセットベクトルに基づいて一直線に移動すると、移動した距離がベクトルの長さ、移動した方向がベクトルの方向となる。", + "7": "ベクトルを操作する方法は多くある。前述のとおり、これらを加算すると、各ベクトルの対応する X、Y、Z成分を加算することができる。減算にも同じことが当てはまる。都合のいいことに、位置ベクトルを別の位置ベクトルから減算すれば、最初の位置から2番目の位置までのオフセットが得られる。$(br2)2つのベクトルの乗算と除算はそれほど単純ではない。その題目についてのさらなる情報は$(l:https://www.headboost.jp/vector-dot-product/)ここ/$と$(l:https://www.headboost.jp/cross-product/)ここ/$で見られる。", + "8": "ベクトルを単一の数値で乗算または除算して$(o)スケール/$することもできる。これにより、ベクトルの3つの成分すべてがその数値で乗算または除算される。$(br2)数値が正である限り、その方向に影響を与えることなくベクトルの長さは乗算または除算される。数値が負の場合、長さは通常どおり乗算または除算されるが、方向が逆になる。", + "9": "ベクトルをそれ自体の長さで除算すると、元のベクトルと同じ方向で長さがちょうど1の単位ベクトルが生成される。これらはベクトルの方向のみが重要な場合に役立つ。単位ベクトルに何らかの数値を乗算して、ちょうどその長さの新しいベクトルを取得できることも便利である。$(br2)$(l:patterns/basics#hexcasting:get_entity_look)示方規の浄化/$などの、何らかの方向を計算する多くのパターンは、それを単位ベクトルとして提供する。", + "10": "これまでに述べたすべてと、さらに多くの演算を、$(l:patterns/math)数学/$の章にあるパターンで実行できる。$(br2)$(l:patterns/basics)基本的なパターン/$でエンティティから情報を収集するか、$(l:patterns/consts)定数/$で基本方向の単位ベクトルを作成するか、$(l:patterns/math#hexcasting:construct_vec)方向の昂揚/$で3つの数値を直接結合すれば、新たなベクトルを作成できる。", + "11": "ベクトル関連のより高度な概念を理解するために、この手記の範囲外をさらに研究したくなるかもしれない。以下の動画も便利な参考資料となるだろう。", + "11.link_text": "3blue1brown", }, mishaps: { "1": "残念ながら、自分は(まだ)完璧ではない。$(hex)呪紋/$の研究や描画で間違うこともある。例えば、パターンを描き間違えたり、間違ったイオタでアクションを起こそうとする。そして自然界は通常、間違いを甘く見てはくれず、いわゆる$(italic)変事/$を引き起こす。", @@ -1254,9 +1289,9 @@ "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)ガベージ/$に置き換えられる。", + incorrect_iota: "実行されたアクションが引数として特定のタイプのイオタを予期していたが、無効なものを取得した。複数のイオタが無効な場合、エラーメッセージはスタックの最深部のエラーについてのみ表示する。$(br2)灰色の光が散り、無効なイオタが$(thing)ガベージ/$に置き換えられる。", "vector_out_of_range.title": "範囲外のベクトル", vector_out_of_range: "アクションが範囲外の地点で世界に影響を与えようとした。$(br2)赤紫色の光が散り、手に持っているアイテムが問題の位置に向かって投げ出される。", "entity_out_of_range.title": "範囲外のエンティティ", @@ -1270,7 +1305,7 @@ "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)橙色の光が散り、描こうとしたパターンがイオタとしてスタックに入る。", + needs_parens: "先に$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$を描かずに$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$中にのみ動作するパターンを描こうとした。$(br2)橙色の光が散り、描こうとしたパターンがイオタとしてスタックに入る。", "too_many_patterns.title": "思考に沈む", too_many_patterns: "1度の$(hex)呪紋/$で多すぎるパターンを評価しようとした。多くの場合、誤って無限ループを生成したために発生する。$(br2)暗い青色の光が散り、空気がすべてなくなり、窒息する。", "true_name.title": "他者の侵害", @@ -1352,11 +1387,11 @@ "3": "他のタイプの$(l:items/slate)$(item)石板/$も知っている。パターンはないが他の...奇妙な...異質なものが散りばめられているように見える石板だ。考えると頭が痛くなる。まるで思考がそれらの設計に沿って曲げられ、道筋を辿り、入り組んだ深みを曲がって横切り、辿って辿って辿って導かれて処理されて$(br2)...我を忘れるところだった。これらの研究は後にしたほうがいいかもしれない。", }, hexcasting: { - "1": "$(l:items/staff)$(item)杖/$で$(hex)呪紋/$を出先で描ける柔軟性は非常に便利だが、簡単な目的を果たすためだけに何度も振り回さなければならないのは非常に面倒である。共通のスペルを保存して後で再利用できれば、大幅に扱いやすくなり、$(hex)呪紋/$を仲間と共有することも可能になる。", + "1": "$(l:items/staff)$(item)杖/$で$(hex)呪紋/$を出先で描ける柔軟性は非常に便利だが、簡単な目的を果たすためだけに何度も振り回さなければならないのは非常に面倒である。共通の$(hex)呪紋/$を保存して後で再利用できれば、大幅に扱いやすくなり、$(hex)呪紋/$を仲間と共有することも可能になる。", "2": "これを行うには3種類の魔法のアイテム、$(l:items/hexcasting)$(item)サイファー/$、$(l:items/hexcasting)$(item)トリンケット/$、$(l:items/hexcasting)$(item)アーティファクト/$の内の1つを作成すれば良い。それらはすべて指定された$(hex)呪紋/$のパターンを、$(media)メディア/$を含む小型バッテリーと共に保持している。$(br2)これを持って$(thing)$(k:use)/$を押すと、内部バッテリーを使用して、杖で描いたかのように内部のパターンが発動する。", "3": "各アイテムには固有の特徴がある:$(br2)$(l:items/hexcasting)$(item)サイファー/$は脆く、内部の$(media)メディア/$の蓄えがなくなると破壊され、再充填は$(italic)できない/$。$(br2)$(l:items/hexcasting)$(item)トリンケット/$は十分な$(media)メディア/$が残っている限り好きなだけ発動できるが、その後は再充填されるまで使用できなくなる。", "4": "$(l:items/hexcasting)$(item)アーティファクト/$はこの中で最も強力で、$(media)メディア/$を使い果たした後は$(l:items/staff)$(item)杖/$で描画するときと同様に、インベントリの$(l:items/amethyst)$(item)アメジスト/$で$(hex)呪紋/$の対価を払うことができる。$(br2)普通の作業台で空の魔術用具を作り、そのアイテムに(他ではなく)適したスペルを使用して$(hex)呪紋/$を注入する。$(l:patterns/spells/hexcasting)ここでパターンを一覧にした。/$", - "5": "各注入のスペルにはエンティティと、パターンのリストがスタックに必要である。エンティティは$(media)メディア/$を持つアイテムのエンティティ(つまり地面にドロップされた$(l:items/amethyst)$(item)アメジスト/$)を必要とし、消費されてバッテリーを形成する。$(br2)便利なことに、バッテリーの$(media)メディア/$は$(l:items/staff)$(item)杖/$で描画するときのようにまとまって消費されず、一続きの蓄えに「溶ける」ようだ。従って、$(l:items/amethyst)$(item)アメジストダスト/$1個分の$(media)メディア/$を要する$(hex)呪紋/$を保存する場合、$(l:items/amethyst)$(item)蓄力アメジスト/$を使用すると10回発動できるようになる。", + "5": "各注入のスペルにはエンティティと、発動させる$(l:casting/whats_a_hex)イオタのリスト/$がスタックに必要である。エンティティは$(media)メディア/$を持つアイテムのエンティティ(地面にドロップされた$(l:items/amethyst)$(item)アメジスト/$)を必要とし、消費されてバッテリーを形成する。$(br2)便利なことに、バッテリーの$(media)メディア/$は$(l:items/staff)$(item)杖/$で描画するときのようにまとまって消費されず、一続きの蓄えに「溶ける」ようだ。従って、$(l:items/amethyst)$(item)アメジストダスト/$1個分の$(media)メディア/$を要する$(hex)呪紋/$を保存する場合、$(l:items/amethyst)$(item)蓄力アメジスト/$を使用すると10回発動できるようになる。", "crafting.desc": "$(italic)我々の分野には「魔法に非ず」ということわざがある。それは「ただ動作する」ものではなく、考えたことに応じるものでもなく、火の玉を撃ったり、無から夕食を作ったり、大勢の悪党をカエルやカタツムリに変えたりもできない。/$", }, ancient_cyphers: { @@ -1365,7 +1400,7 @@ "3": "これらの遺物で固めた$(l:items/pigments)$(item)色素/$は紫色と橙色の独特な混合で、銅とアメジストの外観によく似合う。上記のレシピを使用してそれを再現できる。", }, phials: { - "1": "自分の作業に自然界がお釣りをくれないのは非常に...煩わしい。手元に$(l:items/amethyst)$(item)蓄力アメジスト/$しかなければ、最小の$(l:patterns/basics#hexcasting:raycast)$(action)射手の蒸溜/$ですら結晶全体を消費し、残りの$(media)メディア/$は無駄になる。$(br2)幸いなことに、この問題をいくらか緩和する方法を見つけたようだ。", + "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)牛乳を飲もう。/$", @@ -1432,7 +1467,7 @@ }, directrix: { "1": "自立した$(media)メディア/$の波を生成する作業よりも、それを導く作業のほうが容易である。通常、波は交差点に差し掛かると崩壊してしまうが、誘導する意思で出力の方向を制御できる。$(br2)この操作は魔法陣の作動ほど繊細ではない。実際、手動で行うことが可能かもしれないが...今利用できる箱入りの精神が非常に便利だろう。", - "2": "$(l:greatwork/directrix)$(item)指導石/$は$(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/$は前から出す。論理型をなにも指定しなければ変事が発生する。", @@ -1444,7 +1479,7 @@ "3": "図書館の操作は単純で、パターンが司書に送られると、検索してイオタを返す。2つのアクションでこれを行う。$(l:patterns/akashic_patterns)ここに書いてある/$。$(br2)本棚に白紙の$(l:items/scroll)$(item)巻物/$を使用すると、そこのパターンが$(l:items/scroll)$(item)巻物/$にコピーされる。スニークして素手で使用して本棚のデータを消去する。", }, quenching_allays: { - "1": "彼らは小さなメディアだ。なぜもっと早く気づかなかったのだろう?彼らは...自分が思考の断片に恵まれた肉片の塊であるように、アレイは肉片に固定されたメディアの自立した矢である。彼らのメディアへの傾向、音楽への反応、すべて説明がつく。今なら分かる。先人はなぜ分からなかったのだ?", + "1": "彼らは小さな$(media)メディア/$だ。なぜもっと早く気づかなかったのだろう?彼らは...自分が思考の断片に恵まれた肉片の塊であるように、アレイは肉片に固定された$(media)メディア/$の自立した矢である。彼らの$(media)メディア/$への傾向、音楽への反応、すべて説明がつく。今なら分かる。先人はなぜ分からなかったのだ?", "2": "こうなれば、彼らの特異な精神、特異な自己を獲得するのが筋だ。それが彼らのすべて、精神、自己、終末なのだから。彼らの位相が話しかけてくるような気がする。できる...彼らを$(media)メディア/$と共に圧縮して、2つの思考の筋道を1つの場所に重ね合わせ、物理と認知をひとまとめにできる。$(br2)どういうわけか、その処理は独自の$(media)メディア/$を生み出す。なぜか?おそらく...おそらくこの作業を、行う過程で...", "3": "問題ない。どうでもいい。彼らは重要ではない、重要なのはできるもの、これだけだ。$(br2)かなりの苦痛を伴うだろう。$(br2)10個の$(l:items/amethyst)$(item)アメジストダスト/$がこの歪曲の儀式をする対価だ。", "4": "この産物は壊れやすい。壊すと砕けて欠片になり、$(thing)幸運/$があればさらに量が増える...ブロック自体が欲しければシルクタッチが必要だ。$(br2)得られた欠片は1個で$(l:items/amethyst)$(item)蓄力アメジスト/$3個に相当する。ブロック自体は欠片4個に相当する。", @@ -1474,6 +1509,7 @@ "raycast/entity": "$(l:patterns/basics#hexcasting:raycast)$(action)射手の蒸溜/$と似ているが、代わりに見ている$(italic)エンティティ/$を返す。ごく少量の$(media)メディア/$を要する。", get_entity_height: "スタック上のエンティティを、その身長に変換する。", get_entity_velocity: "スタック上のエンティティを、その移動速度をその方向の大きさとして、それが移動している方向に変換する。", + get_media: "現在の描画に使用できる$(media)メディア/$の量を、$(l:items/amethyst)$(item)アメジストダスト/$単位でスタックに追加する。", }, numbers: { "1": "不本意だが、数値を描く簡単な方法はない。これが自然界がくれた方法である。", @@ -1497,9 +1533,9 @@ "sub.1": "引き算を行う。", "sub.2": "例:$(li)スタックの1番上に2つの数値があれば、それらを差に結合する。$(li)数値とベクトルがあれば、スタックから数値を削除してベクトルの各成分から引く。$(li)2つのベクトルがあれば、各成分の差を結合する。$(br2)いずれの場合も、スタックの1番上、またはその成分を上から2番目のもの$(italic)から/$引く。", "mul.1": "掛け算またはドット積を行う。", - "mul.2": "例:$(li)2つの数値があれば、それらを積に結合する。$(li)数値とベクトルがあれば、スタックから数値を削除してベクトルの各成分に掛ける。$(li)2つのベクトルがあれば、それらを$(l:https://ja.wikipedia.org/wiki/ドット積)ドット積/$に結合する。", + "mul.2": "例:$(li)2つの数値があれば、それらを積に結合する。$(li)数値とベクトルがあれば、スタックから数値を削除してベクトルの各成分に掛ける。$(li)2つのベクトルがあれば、それらを$(l:https://www.headboost.jp/vector-dot-product/)ドット積/$に結合する。", "div.1": "割り算またはクロス積を行う。", - "div.2": "例:$(li)2つの数値があれば、それらを商に結合する。$(li)数値とベクトルがあれば、スタックから数値を削除してベクトルの各成分をその数値で割る。$(li)2つのベクトルがあれば、それらを$(l:https://ja.wikipedia.org/wiki/クロス積)クロス積/$に結合する。$(br2)最初と2番目の場合では、スタックの上から2番目のものが、スタックの1番上のもので割られる。$(p)警告: 絶対に0で割らないで!", + "div.2": "例:$(li)2つの数値があれば、それらを商に結合する。$(li)数値とベクトルがあれば、スタックから数値を削除してベクトルの各成分をその数値で割る。$(li)2つのベクトルがあれば、それらを$(l:https://www.headboost.jp/cross-product/)クロス積/$に結合する。$(br2)最初と2番目の場合では、スタックの上から2番目のものが、スタックの1番上のもので割られる。$(p)警告: 絶対に0で割らないで!", "abs.1": "絶対値または長さを求める。", "abs.2": "数値をその絶対値に変換するか、ベクトルをその長さに変換する。", "pow.1": "べき乗またはベクトル射影を行う。", @@ -1632,18 +1668,23 @@ }, patterns_as_iotas: { "1": "この術の多くの特徴の内の1つは$(italic)パターン自体/$がイオタとして機能できることで、描画中にそれらをスタックに加えることもできる。$(br2)ここで当然の疑問が沸く。$(br)どうやってそれらを表現すれば良い?単にパターンを描くのでは、それをスタックに追加するように自然界に伝えることは望めず、アクションに一致するだけだろう。", - "2": "幸い、自然界はパターンを直接操作するために使用できる作用一式を提供してくれた。$(br2)端的には、$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$で1つのパターンをスタックに追加し、$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$でリスト全体を追加できる。", + "2": "幸い、自然界はパターンを直接操作するために使用できる特殊なパターン一式を提供してくれた。$(br2)端的には、$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)熟考/$と$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$で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:undo)$(action)消失/$でリストの作成中に間違いを取り消す。", parens: { - "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$を描くと、パターンの描画が一時的に異なる動作をする。$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)回想/$を描くまで、描いたパターンは保持される。それから$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$を描くと、それらがリストイオタとしてスタックに追加される。", + "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": "もう1つ$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$を描いた場合、それはリストに保存されるが、通常の描画に戻すには$(italic)2つ/$の$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$を描かなければならない。", }, - undo: "最後に、$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$の内側でパターンを描き間違えたときには$(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)消失/$を描いて、最後に描いたパターンを作成中のパターンリストから削除できる。", + undo: "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$の内側でパターンを描き間違えたときには$(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)消失/$を描いて、最後に描いたパターンを作成中のパターンリストから削除できる。", further_notes: { title: "追加のメモ", - "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$の特別な動作を回避するには、それらの前に$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$を描けば、描画に戻るために要する$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$の数に影響を与えず、リストに追加されるだけになる。$(br2)$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$中に2つの$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$を描くと、1つの$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$がリストに追加される。", + "1": "$(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:escape)$(action)検討/$をパターンリストに入れたい場合は、それを2つ描かなければならない。最初の$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)検討/$で2つ目の特殊な動作をエスケープし、リストに追加できるようにするのだ。$(br2)一方、$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)熟考/$は深さに関係なく1回だけ描けば済む。", "2": "$(l:patterns/meta#hexcasting:eval)$(action)ヘルメスの仕掛/$やその他のメタ評価パターンで実行されるリストにパターン以外のイオタがあると、通常は変事が発生する。しかし、この章に記載したパターンを使用して、これを回避できる。$(br2)パターンイオタと同様に、ここに記載したパターンで$(o)他の$()型のイオタを「エスケープ」し、何かがそれを評価しようとしたときに変事を起こさずスタックに追加されるようにできる。", - "3": "この手法は、$(hex)呪紋/$で毎回構築したり取得したりせずに、複雑なベクトルやエンティティ参照などの特定のイオタを参照できるようにしたい場合に便利である。$(br2)そのようなイオタをパターンのリストに入れる過程は、最初から多少は複雑になり得る。最も簡単な方法は、リストを組み立てるときには仮のパターンを描き、その後に$(l:patterns/lists#hexcasting:replace)$(action)外科医の昂揚/$で目的のイオタに置き換えることだ。", + "3": "この手法は、毎回構築したり取得したりせずに、$(hex)呪紋/$で複雑なベクトルやエンティティ参照などの特定のイオタを参照できるようにしたい場合に便利である。$(br2)第一に、そのようなイオタをパターンのリストに入れるには、リストの作成中に$(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)間投/$を使用するか、仮のパターンを描き、リスト作成後に$(l:patterns/lists#hexcasting:replace)$(action)外科医の昂揚/$で置き換えれば良い。", + }, + runtime_escape: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)熟考/$を使用するには、それを描いてから、別の任意のパターンを描く。その2つ目のパターンがスタックに追加される。", + "2": "計算機科学に精通している者ならば、パターンをスタックに「エスケープする」と考えれば分かりやすいかもしれない。$(br2)これの通常の使用法は、$(l:patterns/readwrite#hexcasting:write)$(action)筆記者の仕掛/$を使用してパターンを$(l:items/scroll)$(item)巻物/$や$(l:items/slate)$(item)石板/$にコピーし、おそらくそれらで装飾することである。", }, + escape: "$(l:patterns/patterns_as_iotas#hexcasting:runtime_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:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$の間で機能する他のパターンを「エスケープ」し、他の効果なしでリストに追加できる。", }, readwrite: { "1": "この章では、より恒久的な媒体での$(thing)イオタ/$の保管について扱う。ほぼすべてのイオタは$(l:items/focus)$(item)焦点具/$や$(l:items/spellbook)$(item)魔法書/$などの適切なアイテムに保存し、後で読み込むことができる。$(l:items/abacus)$(item)そろばん/$などの一部のアイテムは読み込みだけができる。$(br2)イオタは通常、反対側の手から読み書きされるが、アイテムがエンティティとして地面や額縁の中にあるときはアイテムでの読み書きもできる。", @@ -1662,15 +1703,15 @@ "read/local": "$(l:patterns/readwrite#hexcasting:write/local)$(action)フギンの仕掛/$で書き込んだであろうイオタを、$(l:patterns/readwrite#hexcasting:local)$(thing)レイヴンマインド/$からコピーする。", }, 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": "パターンのリストとリストをスタックから削除し、指定したパターンリストを2番目のリストの各要素に発動する。", - "for_each.2": "より具体的には、2番目のリストの各要素に:$(li)現在のスタック上のすべてとその要素を含む新しいスタックを生成する。$(li)最初のリストのすべてのパターンを描く。$(li)スタックに残っているすべてのイオタをリストに保存する。$(br)その後の続きがすべて終わった後、保存されたイオタのリストをメインのスタックに追加する。$(br2)この技術の実践者が皆発狂するのも不思議ではない。", + "eval.1": "評価対象(通常はパターンか$(l:casting/whats_a_hex)$(hex)呪紋全体/$)をスタックから削除し、関連するパターンを$(l:items/staff)$(item)杖/$で自分で描いたかのように発動する。", + "eval.2": "これは$(l:items/focus)$(item)焦点具/$と併用すると非常に強力になる可能性があり、ある難解な巻物によると、自然界の官僚制度を「チューリング完全」システムにもしているようだ。$(br2)この方法で発動された$(hex)呪紋/$内の、パターン以外のイオタは$(l:patterns/patterns_as_iotas)$(action)エスケープ/$しなければ変事を引き起こすことに注意しよう。さらに、自分で導くことなくパターンのエネルギーが生じるため、$(o)いかなる/$変事も$(hex)呪紋/$の残りのアクションを即座にほどいてしまう。", + "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)ヘルメスの仕掛/$と同様にパターンまたはパターンのリストを発動するが、独自の「ジャンプ」イオタが事前にスタックに追加される。", - "eval/cc.2": "「ジャンプ」イオタが実行されると、残りのパターンをスキップし、パターンリストの最後に直接ジャンプする。$(p)$(l:patterns/meta#hexcasting:halt)$(action)カロンの仕掛/$の存在を考慮すると冗長に見えるかもしれないが、カロンでは1つのみを終了できるが、これにより$(italic)入れ子/$$(l:patterns/meta#hexcasting:eval)$(action)ヘルメス/$の発動を制御された方法で終了させることが可能になる。 $(p)「ジャンプ」イオタは実行が終了した後もスタック上に留まるようだ...その影響については考えないほうが良い。", - "thanatos.1": "$(hex)呪紋/$がまだ評価できるパターンの数をスタックに追加する。これは$(hex)呪紋/$がパターンを発動する度に1ずつ減る。", + "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)ヘルメスの仕掛/$と同様に評価対象を発動するが、独自の「ジャンプ」イオタが事前にスタックに追加されるという点が異なる。 ", + "eval/cc.2": "「ジャンプ」イオタが実行されると、残りのアクションをスキップし、評価対象の最後に直接ジャンプする。$(p)$(l:patterns/meta#hexcasting:halt)$(action)カロンの仕掛/$の存在を考慮すると冗長に見えるかもしれないが、これにより$(italic)入れ子/$$(l:patterns/meta#hexcasting:eval)$(action)ヘルメス/$の発動を制御された方法で終了できるようになる。カロンで終了できるのは1つのみだ。$(p)「ジャンプ」イオタは実行が終了した後もスタック上に留まるようだ...その影響については考えないほうが良い。", + "thanatos.1": "単一の$(hex)呪紋/$で評価できるパターンの数には限界があるようだ。このパターンにより、限界に達するまでにいくつのパターンが残っているかを判断できる。", }, circle_patterns: { disclaimer: "これらのパターンは$(l:greatwork/spellcircles)$(item)魔法陣/$から発動する必要があり、$(l:items/staff)$(item)杖/$を介して発動しようとすると見事に失敗する。", @@ -1700,7 +1741,7 @@ }, blockworks: { place_block: "位置をスタックから削除し、ブロックアイテムを選定して指定された位置に設置する。$(br)約8分の1個の$(l:items/amethyst)$(item)アメジストダスト/$を要する。", - break_block: "位置をスタックから削除し、指定された位置のブロックを破壊する。このスペルはダイヤモンドのツルハシで壊せるほぼすべてのものを壊すことができる。約8分の1個、$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)魔法ブロック/$か$(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)魔法光源/$を破壊するにはごく少量の$(l:items/amethyst)$(item)アメジストダスト/$を要する。", + break_block: "位置をスタックから削除し、指定された位置のブロックを破壊する。このスペルはダイヤモンドのツルハシで壊せるほぼすべてのものを破壊できる。約8分の1個、$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)魔法ブロックか$(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)魔法光源/$を壊すにはごく少量の$(l:items/amethyst)$(item)アメジストダスト/$を要する。", create_water: "指定された位置のブロックに水ブロックを召喚する(またはバケツ1杯分を入れる)。約1個の$(l:items/amethyst)$(item)アメジストダスト/$を要する。", destroy_water: "指定された位置の液体容器、または周囲の液体を枯らす。約2個の$(l:items/amethyst)$(item)蓄力アメジスト/$を要する。", conjure_block: "指定された位置に自分の色素で輝く、幽玄だが固体のブロックを生成する。約1個の$(l:items/amethyst)$(item)アメジストダスト/$を要する。", @@ -1720,7 +1761,7 @@ "potion/slowness": "$(thing)移動速度低下/$を付与する。基本対価は5秒ごとに1個の$(l:items/amethyst)$(item)アメジストダスト/$。", }, hexcasting_spell: { - basics: "これら3つのスペルはそれぞれ$(l:items/hexcasting)$(hex)呪紋$(thing)を発動するアイテム/$を作成する。$(br)これらはすべて空のアイテムをオフハンドに持つ必要があり、発動するパターンのリストと、アイテムのバッテリーを形成するためのドロップされた$(l:items/amethyst)$(item)アメジスト/$のスタックを表すエンティティの2つが必要である。$(br2)詳細については$(l:items/hexcasting)この項目/$を参照。", + basics: "これら3つのスペルはそれぞれ$(l:items/hexcasting)$(hex)呪紋$(thing)を発動するアイテム/$を作成する。$(br)これらはすべて空のアイテムをオフハンドに持つ必要があり、発動させるイオタ(通常はパターン)のリストと、アイテムのバッテリーを形成するためのドロップされた$(l:items/amethyst)$(item)アメジスト/$のスタックを表すエンティティの2つが必要である。$(br2)詳細は$(l:items/hexcasting)この項目/$を参照。", "craft/cypher": "約1個の$(l:items/amethyst)$(item)蓄力アメジスト/$を要する。", "craft/trinket": "約5個の$(l:items/amethyst)$(item)蓄力アメジスト/$を要する。", "craft/artifact": "約10個の$(l:items/amethyst)$(item)蓄力アメジスト/$を要する。", @@ -1764,7 +1805,7 @@ }, "teleport/great": { "1": "$(l:patterns/spells/basic#hexcasting:blink)$(action)瞬間移動/$よりもはるかに強力で、このスペルでエンティティを世界中のどこにでもテレポートできるようになる。距離に関係なく、常に約10個の$(l:items/amethyst)$(item)蓄力アメジスト/$を要するようだ。", - "2": "提供されるベクトルはオフセットであり、世界の絶対位置ではない。例えば、(1, 0, 0)を使用すると、エンティティは元の位置から丁度1ブロック東に行く。$(br2)残念ながら、自分をテレポートする際、完全には集中力を維持できないようだ。これにより、到着時に一部のアイテムがインベントリから飛び散る場合がある。また、対象は乗っている無生物から強制的に降ろされることにも注意が必要だ...が、動物には乗って行けることを示唆する紙片を読んだことがある。", + "2": "ベクトルはオフセットであり、世界の絶対位置ではない。例えば、(1, 0, 0)を使用するとエンティティは元の位置から1ブロック東に行く。$(br2)残念ながら、自分をテレポートする際、完全には集中力を維持できないようだ。これにより、到着時に一部のアイテムがインベントリから飛び散る場合がある。また、対象は乗っている無生物から強制的に降ろされることにも注意が必要だ...が、動物には乗って行けることを示唆する紙片を読んだことがある。", }, zeniths: { "1": "この一連のスペルはすべて、$(l:patterns/spells/nadirs)$(action)天底/$に似て、エンティティに正のポーション効果を付与する。ただし、これらの$(media)メディア/$の対価は効力の$(italic)3乗/$で増加する。", @@ -1790,7 +1831,7 @@ "3": "聞いた限りでは、考える過程、つまり私がペンを動かしたり、パパがこの手紙を読んだりする見えない仕組みは、完全には効率的じゃない。ワゴンの車軸が、しばらく回した後に触ると熱くなっているみたいに、エネルギーが少しだけ周りに出る。この余剰エネルギーのことを「メディア」っていう。1人から余るメディアはほんの少しだけど、メインドームにいる大勢の考えている人には相乗効果があって、一種の器用な働きと組み合わせると、紫色の結晶に固められるんだって。", "4": "でも、彼女の勉強についてはもういいよね。今日は地質学団の初めての探検から帰ってきたの!出発する前に手紙を送らなくてごめん。気づいたらもうその日になってた。私たちは大図書館の東にある地面の割れ目に入って、岩と土の下でキャンプしながら夜を過ごした。もちろん、洞窟では明るくて人がよく通る場所にいたし、正直夜の地上よりも安全だっただろうけど、すごく怖かった!", "5": "幸いその夜は事故もなく過ぎて、地元の鉱脈を調べるために洞窟の奥に進んだ。私たちは岩の深くに少しだけ現れるらしい「アメジスト」っていう紫色の結晶の鉱脈を探していた。悲しいけど何も見つけられなくて、眩しい地上に手ぶらで戻った。", - "6": "考えてみると、この「アメジスト」の説明はアマニタが話していたメディアの結晶とほぼ同じみたい。思考の塊が地下に自然発生するってどんな感じなんだろう!なんでそうなるのか想像もつかないけど...", + "6": "考えてみると、この「アメジスト」の説明はアマニタが話していたメディアの結晶とほぼ同じみたい。思考の塊が地下に自然発生するってどんな感じなんだろう!なんでそうなるのか想像もつかないけど... ", "7": "生徒として、私には虚空郵便で3か月ごとに1通の手紙を無料で送る権利がある。残念だけど、知っての通り私は金欠だから...$(br)パパと連絡を取る方法はこれしかないの。もちろん、手紙の返事を送るためのお金を一緒に用意してくれたら本当に助かるけど、私たちの連絡には限界があるようね。パパと一緒にいられないのは嫌だけど、ここで得たスキルは返済より大きくなる。想像してみて、私は家族の中で初めて農民以外になるんだよ!", "8": "そんなわけで、また書くのは3ヵ月後になると思う。$(br2)敬具$(br)カルダモン・スティールス", }, @@ -1867,8 +1908,8 @@ }, }, interop: { - "1": "$(hex)Hexcasting/$の術は多目的に利用できる。自分の世界が他の力によって$(italic)改造/$されていることに気づけば、$(hex)Hexcasting/$をそれらと調和させ、連携して使用できる可能性がある。", - "2": "ただし、自然界はこれらの術の側面を作成することへの関心が薄いと思われることを念頭に置くのが良い。奇妙な動作やバグが予想される。Mod開発者がそれらを修正するために最善を尽くすのは確かだが、これは本人にとって重要度の低い娯楽であることを覚えておかねばならない。$(br2)相互運用している力の対価と効果のバランスが著しく無視されていることにも気づくかもしれない。そのような場合は、自分で責任を持って使用を控える必要があるだろう。", + "1": "$(hex)六角術/$の技は多目的に利用できる。自分の世界が他の力によって$(italic)改造/$されていることに気づけば、$(hex)六角術/$をそれらと調和させ、連携して使用できる可能性がある。", + "2": "ただし、自然界はこれらの術の側面を作成することへの関心が薄いと思われることを念頭に置くのが良い。奇妙な動作やバグが予想される。Mod開発者がそれらを修正するために最善を尽くすのは確かだが、これは本人にとって重要度の低い娯楽であることを覚えておかねばならない。$(br2)連携している力の対価と効果のバランスが著しく無視されていることにも気づくかもしれない。そのような場合は、自分で責任を持って使用を控える必要があるだろう。", "3": "最後に、この世界の伝承や物語に興味を抱いたならば、これらの相互運用を研究する際に編集されたメモは、些細なこと以上の何かとして、よく考えるのが好ましい。", gravity: { "1": "エンティティの重力を取得および設定するアクションを発見した。少し吐き気を催すかもしれないが、興味深く思う。$(br2)面白いことに、$(l:patterns/spells/flight)$(action)飛行/$スペルは範囲や時間に制限があり、同様に重力を操作するが、これらは制限されていない。なぜなのだろうか...もしかしたら、Mod開発者はプレイヤーに一度だけ楽しんでほしかったのかもしれない。", @@ -1881,6 +1922,33 @@ set: "エンティティの縮尺を、その通常のサイズに対する比率を渡して設定する。約1個の$(item)アメジストの欠片/$を要する。", }, }, + whats_a_hex: { + "1": "概念上は、$(hex)呪紋/$とは$(l:casting/101)六角術の基礎/$で述べたとおり、通常は1つ以上のスペルで世界に何らかの効果を行使することを目的として行われる、一連のアクションである。$(br2)この$(hex)呪紋/$の発想は、その場限りの術としては申し分ないが、後世のために(もしくは単に自分で再利用するために)自分の成果を記録したければ、もう少し実体のあるものが必要になるだろう。", + "2": "一般的に、これは$(l:patterns/patterns_as_iotas)エスケープパターン/$に記載した手法によって作成された、パターンイオタのリストの形式をとる。$(hex)呪紋/$をこの方法でスタックに置くと、$(l:patterns/meta#hexcasting:eval)ヘルメスの仕掛/$のようなメタ評価パターンを用いて発動させたり、$(l:items/hexcasting)魔術用具/$に注入して簡単に再利用したりできる。$(br2)このリストは他のリストイオタと何ら変わりはなく、操作したり、$(l:items/thought_knot)恒久的な/$$(l:items/focus)場所/$に保存したり、他の$(hex)呪紋/$に組み込むこともできる。", + "3": "パターンイオタのみで構成されている必要がないことも重要だ。別の型のイオタを$(hex)呪紋/$に加えると通常はうまくいかないが、$(l:patterns/patterns_as_iotas#iota_embedding)ある手法/$でそれを安全に可能にできる。さらに、一部の$(l:patterns/meta#hexcasting:eval/cc)特殊なイオタ/$はパターンと同様に直接評価できる。$(br2)これを念頭に置けば、理論上は$(o)あらゆる/$イオタのリストを$(hex)呪紋/$にできる。無事に発動できさえすれば良いのだ。", + }, + types: { + type_equals: "指定されたイオタを比較して等しい型であるかどうかをスタックに追加する。", + type_not_equals: "指定されたイオタを比較して異なる型であるかどうかをスタックに追加する。", + "compare_block/": { + lenient: "指定されたベクトルによって特定したブロックを比較して等しい種類であるかどうかをスタックに追加する。2つの$(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)教化された階段/$は形状や水没しているかに関わらず常に等しいものとして比較される。", + strict: "指定されたベクトルによって特定したブロックを比較して同一であるかどうかをスタックに追加する。設置された2つの$(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)教化された階段/$は完全に同一である場合にのみ等しいものとして比較される。", + remarks: "自然界はブロックが互いに同一であるかどうかに関してはやや気まぐれなようだ。設置された$(l:items/slate)$(item)石板/$は、同じ方向を向いていて水没の状態が同じであれば、異なるパターンが書き込まれていても同一であるとみなされる。同様に、チェストは中身が異なっていても外観が同じであれば同一であるとみなされる。", + }, + compare_entity: "指定されたエンティティを比較して等しい種類であるかどうかをスタックに追加する。", + "compare_item/": { + lenient: "指定されたエンティティによって表現または保持されているアイテムを比較して等しい種類のアイテムであるかどうかをスタックに追加する。2つの$(l:items/focus)$(item)焦点具/$は常に等しいものとして比較される。", + strict: "$(l:patterns/types#hexcasting:compare_item/lenient)$(action)選別の蒸溜/$と似ているが、同一のアイテムであるかどうかをスタックに追加する。2つの$(l:items/focus)$(item)焦点具/$は同じイオタを保持して$(l:patterns/spells/cyclevariant)$(thing)同じ外観/$である場合にのみ等しいものとして比較される。", + "remarks.title": "アイテムホルダーについて", + remarks: "自然界が$(l:patterns/types#hexcasting:compare_item/lenient)$(action)選別の蒸溜/$または$(l:patterns/types#hexcasting:compare_item/strict)$(action)積層の蒸溜/$で指定されたエンティティを解釈する方法は、その種類によって異なる:$(li)アイテムエンティティは、それが表すアイテムに解決される$(li)額縁は、それに含まれるアイテムに解決され、空の場合は変事が発生する$(li)プレイヤーは、彼らが現在手に持っているアイテムに解決され、メインハンドが優先される", + }, + }, + advanced_escaping: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$と$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$は非常に便利だが、複雑な$(hex)呪紋/$を構築するには、より高度な技術が必要になる場合がある。$(br2)この章には、そのような技術について記載する。$(l:patterns/advanced_escaping#hexcasting:read_into_parens)$(action)間投/$で作成中のリストに直接イオタを挿入でき、$(l:patterns/advanced_escaping#hexcasting:open_n_parens)$(action)瞑想/$と$(l:patterns/advanced_escaping#hexcasting:close_all_parens)$(action)想起/$でリスト作成プロセスを、入れ子の任意の深さで開始および終了できる。", + read_into_parens: "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$中にのみ動作する。オフハンドからイオタを読み込み、作成中のリストに追加する。イオタがパターン以外の場合は、リスト実行時の変事を回避するために$(l:patterns/patterns_as_iotas#iota_embedding)$(action)対策を講じる/$必要があるだろう。", + open_n_parens: "数値をスタックから削除し、その数の$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(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:escape)$(action)技/$が必要になるだろう。", + close_all_parens: "$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)回想/$のように動作するが、$(italic)すべての/$開いている$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$を一度に閉じる。閉じられた層の数と、保存されたパターンのリストがスタックに追加される。", + }, }, }, } From bbeb9c807166c757463cef9509797e29d8aaacb4 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 32/50] chore(l10n): update English (Pirate) translation chore(l10n): update translation files 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 Add-on: Remove blank strings Co-authored-by: Hexxy Weblate Co-authored-by: frostedlyre Co-authored-by: penguinencounter Language: English (Pirate) Progress: 2.7% (38 of 1386 strings) Progress: 3.7% (52 of 1386 strings) Progress: 4.3% (1 of 23 strings) Progress: 8.2% (115 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/en@pirate/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/en_pt.flatten.json5 | 183 +++++++++++++++++- .../hexcasting/lang/en_pt.flatten.json5 | 8 +- 2 files changed, 189 insertions(+), 2 deletions(-) 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 0967ef424b..72359f022a 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 @@ -1 +1,182 @@ -{} +{ + "item.hexcasting": { + quenched_allay_shard: "Shard o' snuffed pixie", + dye_colorizer_: { + white: "Pigment o' white", + orange: "Pigment o' orange", + magenta: "Pigment o' magenta", + light_blue: "Pigment o' light blue", + yellow: "Pigment o' yellow", + lime: "Pigment o' lime", + pink: "Pigment o' pink", + gray: "Pigment o' gray", + light_gray: "Pigment o' light gray", + cyan: "Pigment o' cyan", + purple: "Pigment o' purple", + blue: "Pigment o' blue", + brown: "Pigment o' brown", + green: "Pigment o' green", + red: "Pigment o' red", + black: "Pigment o' black", + }, + pride_colorizer_: { + agender: "Pigment o' agender", + aroace: "Pigment o' aroace", + aromantic: "Pigment o' aromantic", + asexual: "Pigment o' asexual", + bisexual: "Pigment o' bisexual", + demiboy: "Pigment o' demiboy", + demigirl: "Pigment o' demigirl", + gay: "Pigment o' sailor", + genderfluid: "Pigment o' genderfluid", + genderqueer: "Pigment o' genderqueer", + intersex: "Pigment o' intersex", + lesbian: "Pigment o' lesbos", + nonbinary: "Pigment o' not-binary", + pansexual: "Pigment o' pansexua", + plural: "Pigment o' plurality", + transgender: "Pigment o' transgender", + }, + uuid_colorizer: "Pigment o' th' soul", + default_colorizer: "Pigment o' nothin'", + ancient_colorizer: "Pigment o' antiquity", + lore_fragment: { + "": "Tall tale fragment", + all: "'T seems I've found all th' tall tales this sea has to off'r.", + }, + staff: { + birch: "Staff o' birch", + jungle: "Staff o' jungle", + acacia: "Staff o' acacia", + spruce: "Staff o' spruce", + oak: "Staff o' oak", + dark_oak: "Staff o' dusky oak", + warped: "Twisted staff o' hyphae", + mangrove: "Staff o' mangrove", + cherry: "Staff o' cherry", + bamboo: "Staff o' bambarrr", + quenched: "Staff o' snuffed pixie", + crimson: "Staff o' ichor", + edified: "Staff o' saints", + }, + amethyst_dust: "Dust o' gem", + scroll_small: { + "": "Small roll o' parchment", + of: "How d'ya find this %s", + empty: "Small roll o' em'ty parchment", + }, + scroll_medium: { + "": "Medium roll o' parchment", + of: "How d'ya find this %s", + empty: "Medium roll o' em'ty parchment", + }, + scroll: { + "": "Large roll o' parchment", + of: "Ancient roll o' parchment", + empty: "Large roll o' empty parchment", + }, + book: "Yer' ship's journal", + focus: { + "": "Locket", + sealed: "Calked locket", + }, + sub_sandwich: "Poseidon's body", + charged_amethyst: "St. elmo's gem", + creative_unlocker: { + for_emphasis: "BOTTOMLESS BOOTY", + "": "Bag o' three winds", + tooltip: "Chew on to pinch all %s know-how.", + mod_name: "Hexcasting", + }, + battery: "Bottle o' winds", + }, + "entity.hexcasting": { + wall_scroll: "Hang'd roll o' parchment", + }, + "block.hexcasting": { + conjured_light: "Conj'r'd lantarrrn", + conjured_block: "Conj'r'd block", + slate_: { + block: "Block o' tough magic rock", + tiles: "Tiles o' tough magic rock", + bricks: "Bricks o' tough magic rock", + bricks_small: "Small bricks o' tough magic rock", + pillar: "Post o' tough magic rock", + }, + amethyst_: { + dust_block: "Pile o' dust o' gem", + tiles: "Tiles o' purple gem", + bricks: "Bricks o' purple gem", + bricks_small: "Small bricks o' purple gem", + pillar: "Post o' purple gem", + }, + slate_amethyst_: { + tiles: "Tiles o' tough magic rock 'n purple gem", + bricks: "Bricks o' tough magic rock 'n purple gem", + bricks_small: "Small bricks o' tough magic rock 'n purple gem", + pillar: "Post o' tough magic rock 'n purple gem", + }, + scroll_paper: "Roll o' parchment", + ancient_scroll_paper: "Antique roll o' parchment", + scroll_paper_lantern: "Parchment lantarrrn", + ancient_scroll_paper_lantern: "Antique parchment lantarrrn", + amethyst_sconce: "Gem glim", + quenched_allay: "Snuffed pixie", + quenched_allay_: { + tiles: "Tiles o' snuffed pixie", + bricks: "Bricks o' snuffed pixie", + bricks_small: "Small bricks o' snuffed pixie", + }, + edified_: { + log: "Log o' saints", + log_amethyst: "Purple gem log o' saints", + }, + }, + "effect.hexcasting": { + enlarge_grid: "Clear-skies", + shrink_grid: "Foggin'", + }, + "item.minecraft.potion.effect": { + enlarge_grid: "Brew o' clear-skies", + enlarge_grid_long: "Brew o' clear-skies", + enlarge_grid_strong: "Brew o' clear-skies", + shrink_grid: "Brew o' fogging", + shrink_grid_long: "Brew o' fogging", + shrink_grid_strong: "Brew o' fogging", + }, + "item.minecraft.splash_potion.effect": { + enlarge_grid: "Grenade o' clear-skies", + enlarge_grid_long: "Grenade o' clear-skies", + enlarge_grid_strong: "Grenade o' clear-skies", + shrink_grid: "Grenade o' foggin'", + shrink_grid_long: "Grenade o' foggin'", + shrink_grid_strong: "Grenade o' foggin'", + }, + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "Bolt o' clear-skies", + enlarge_grid_long: "Bolt o' clear-skies", + enlarge_grid_strong: "Bolt o' clear-skies", + shrink_grid: "Bolt o' foggin'", + shrink_grid_long: "Bolt o' foggin'", + shrink_grid_strong: "Bolt o' foggin'", + }, + "itemGroup.hexcasting": { + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Rolls o' parchment)", + }, + hexcasting: { + mishap: { + invalid_value: { + "class": { + entity: { + player: "a sailor", + living: "a creature", + }, + }, + }, + }, + }, + "matcher.hexcasting.pattern": { + example: "", + }, +} diff --git a/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 b/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 index 0967ef424b..c9bee2af2d 100644 --- a/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/en_pt.flatten.json5 @@ -1 +1,7 @@ -{} +{ + hexdoc: { + pattern: { + not_supported: "Yer mapviewer hasn't got support for visualizin' these patterns. Pattern code: {}", + }, + }, +} From 97c724a6a31a54c326f7cf3991fb9bb619134ea7 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 33/50] chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation Co-authored-by: Hexxy Weblate Co-authored-by: Lithyaku Co-authored-by: Sixela963 Co-authored-by: arsvenutia Co-authored-by: drawn badden Language: French Progress: 12.0% (167 of 1386 strings) Progress: 17.6% (245 of 1386 strings) Progress: 17.7% (246 of 1386 strings) Progress: 31.7% (440 of 1386 strings) Progress: 35.8% (497 of 1386 strings) Progress: 62.6% (869 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 | 1186 ++++++++++++++++- 1 file changed, 1126 insertions(+), 60 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 3da712fbce..f6963620d9 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 @@ -12,32 +12,34 @@ mangrove: "Sceptre en palétuvier", cherry: "Sceptre en cerisier", bamboo: "Sceptre en bambou", - edified: "Sceptre édifié", - quenched: "Sceptre de fragment cristallisé", - mindsplice: "Sceptre de l'imprégnateur d'esprit", + edified: "Sceptre en bois ensorcelé", + quenched: "Sceptre d'éclat imprégné", + mindsplice: "Sceptre du Psycho-Transverseur", }, amethyst_dust: "Poussière d'améthyste", charged_amethyst: "Améthyste chargée", scroll_small: { - "": "Petit Parchemin", - empty: "Petit Parchemin Vierge", + "": "Petit parchemin", + empty: "Petit parchemin vierge", + of: "Comment avez-vous eu cet objet de %s", }, scroll_medium: { - "": "Moyen Parchemin", - empty: "Moyen Parchemin Vierge", + "": "Moyen parchemin", + empty: "Moyen parchemin vierge", + of: "Comment avez-vous eu cet objet de %s", }, scroll: { - "": "Grand Parchemin", - of: "Parchemin Antique de %s", - empty: "Grand Parchemin Vierge", + "": "Grand parchemin", + of: "Parchemin antique de %s", + empty: "Grand parchemin vierge", }, - thought_knot: "Noeud de Pensée", - spellbook: "Grimoire", - trinket: "Babiole", + thought_knot: "Nœud-Pensée", + spellbook: "Livre de sorts", + trinket: "Relique", battery: "Fiole de média", - abacus: "Boulier", + abacus: "Abaque", jeweler_hammer: "Marteau de bijoutier", - sub_sandwich: "Sandwich baguette", + sub_sandwich: "Sandwich américain", dye_colorizer_: { white: "Pigment blanc", orange: "Pigment orange", @@ -74,12 +76,12 @@ intersex: "Pigment Intersexe", plural: "Pigment Pluriel", }, - ancient_colorizer: "Ancien pigment", + ancient_colorizer: "Pigment antique", creative_unlocker: { "": "Le cube de média", for_emphasis: "MÉDIA INFINI", - tooltip: "À consommer pour débloquer toutes les connaissances sur %s.", - mod_name: "Hexcasting", + tooltip: "À consommer pour débloquer toutes les connaissances sur la %s.", + mod_name: "Sorcellerie", }, focus: { "": "Focus", @@ -88,15 +90,21 @@ artifact: "Artéfact", lore_fragment: { "": "Fragment d’Histoire", - all: "Il semblerait que j'ai découvert toute l'histoire de ce monde.", + all: "Il semblerait que j'ai découvert tout ce qu'il y avait à savoir sur l'Histoire de ce monde.", }, - lens: "Lentille Divinatoire", - quenched_allay_shard: "Fragment d'allay cristallisé", - uuid_colorizer: "Pigment d'éclat de l'âme", - default_colorizer: "Pigment absent", + lens: "Lentille de Divination", + quenched_allay_shard: "Éclat d'Allay imprégné", + uuid_colorizer: "Pigment d'Âme Scintillante", + default_colorizer: "Pigment Vide", + book: "Carnet de sortilèges", + ancient_cypher: { + "": "Talisman Antique", + preset: "Talisman antique : %s", + }, + cypher: "Talisman", }, "entity.hexcasting": { - wall_scroll: "Rouleau suspendu", + wall_scroll: "Parchemin suspendu", }, "block.hexcasting": { conjured_light: "Lumière Conjurée", @@ -109,17 +117,17 @@ slate: { "": "Ardoise", blank: "Ardoise Vierge", - written: "Ardoise à Motif", + written: "Ardoise runique", }, slate_: { - block: "Block d'Ardoise", + block: "Bloc d'Ardoise", tiles: "Carreaux d'Ardoise", bricks: "Briques d'Ardoise", bricks_small: "Petites Briques d'Ardoise", pillar: "Pilier d'Ardoise", }, amethyst_: { - dust_block: "Block de poudre d'Améthyste", + dust_block: "Bloc de poudre d'Améthyste", tiles: "Carreaux d'Améthyste", bricks: "Briques d'Améthyste", bricks_small: "Petites Briques d'Améthyste", @@ -135,36 +143,48 @@ ancient_scroll_paper: "Papier de Parchemin Antique", scroll_paper_lantern: "Lanterne en Papier", ancient_scroll_paper_lantern: "Lanterne en Papier Antique", - amethyst_sconce: "Applique Murale d'Améthyste", + amethyst_sconce: "Bougeoir d'Améthyste", directrix: { - empty: "Directrice vide", + empty: "Directrice Vierge", redstone: "Directrice du Maçon", boolean: "Directrice du Berger", }, edified_: { - log: "Bûche Éveillée", - log_amethyst: "Bûche d'Améthyste Éveillée", - log_aventurine: "Bûche d'Aventurine Éveillée", - log_citrine: "Bûche de Citrine Éveillée", - log_purple: "Bûche Éveillée Violette", - wood: "Bois Éveillé", - planks: "Planches de Bois Éveillé", - panel: "Panneau de Bois Éveillé", - tile: "Carrelage de Bois Éveillé", - door: "Porte de Bois Éveillé", - trapdoor: "Trappe de Bois Éveillé", - stairs: "Escaliers de Bois Éveillé", - slab: "Dalle de Bois Éveillé", - button: "Bouton de Bois Éveillé", - pressure_plate: "Plaque de Pression de Bois Éveillé", - fence: "Barrière de Bois Éveillé", - fence_gate: "Portillon de Bois Éveillé", - }, - stripped_edified_log: "Bûche Éveillée Écorcée", - stripped_edified_wood: "Bois Éveillé Écorcé", - amethyst_edified_leaves: "Feuilles d'Arbre Éveillé d'Améthyste", - aventurine_edified_leaves: "Feuilles d'Arbre Éveillé d'Aventurine", - citrine_edified_leaves: "Feuilles d'Arbre Éveillé de Citrine", + log: "Bûche ensorcelée", + log_amethyst: "Bûche ensorcelée d'Améthyste", + log_aventurine: "Bûche ensorcelée d'Aventurine", + log_citrine: "Bûche ensorcelée de Citrine", + log_purple: "Bûche ensorcelée Violette", + wood: "Bois ensorcelé", + planks: "Planches de bois ensorcelé", + panel: "Panneau de bois ensorcelé", + tile: "Carrelage de bois ensorcelé", + door: "Porte de bois ensorcelé", + trapdoor: "Trappe de bois ensorcelé", + stairs: "Escaliers de bois ensorcelé", + slab: "Dalle de bois ensorcelé", + button: "Bouton de bois ensorcelé", + pressure_plate: "Plaque de pression de bois ensorcelé", + fence: "Barrière de bois ensorcelé", + fence_gate: "Portillon de bois ensorcelé", + }, + stripped_edified_log: "Bûche ensorcelée écorcée", + stripped_edified_wood: "Bois ensorcelé écorcé", + amethyst_edified_leaves: "Feuilles d'Arbre ensorcelé d'Améthyste", + aventurine_edified_leaves: "Feuilles d'Arbre ensorcelé d'Aventurine", + citrine_edified_leaves: "Feuilles d'Arbre ensorcelé de Citrine", + quenched_allay: "Allay imprégné", + quenched_allay_: { + tiles: "Carrelage d'Allay imprégné", + bricks: "Briques d'Allay imprégné", + bricks_small: "Petites briques d'Allay imprégné", + }, + impetus: { + empty: "Impetus Vierge", + rightclick: "Impetus de Forgeron", + look: "Impetus de Fléchier", + redstone: "Impetus de Clerc", + }, }, "effect.hexcasting": { enlarge_grid: "Clarté", @@ -207,31 +227,1077 @@ scrolls: "Hex Casting (Parchemins)", }, "gui.hexcasting": { - spellcasting: "Grille de Hex", + spellcasting: "Grille de Sortilèges", }, "category.hexcasting": { binds: "Hex Casting", }, "key.hexcasting": { - spellbook_prev: "Page Précédente du Grimoire", - spellbook_next: "Page Suivante du Grimoire", + spellbook_prev: "Page Précédente du livre de sorts", + spellbook_next: "Page Suivante du livre de sorts", }, "tag.hexcasting": { - staves: "Bâtons de Hex", - phial_base: "Fioles Vides", - edified_logs: "Bûches Éveillées", - edified_planks: "Planches Éveillées", + staves: "Sceptres de Sortilèges", + phial_base: "Fioles vides", + edified_logs: "Bûches ensorcelées", + edified_planks: "Planches ensorcelées", }, "tag.item.hexcasting": { directrices: "Directrices", + seal_materials: "Matériel de scellé", + brainswept_circle_components: "Composants de Cercle de Psycho-Transversion", + grants_root_advancement: "Octroie la progression racine", + impeti: "Impeti", }, "text.autoconfig.hexcasting": { option: { common: { dustMediaAmount: { - "@Tooltip": "Combien d'unités de média vaut une seule poudre d'améthyste", + "@Tooltip": "Combien de Média vaut une seule poudre d'améthyste", + "": "Quantité de Média en poudre", + }, + shardMediaAmount: { + "": "Quantité de Média en éclat", + "@Tooltip": "Combien de Média vaut un seul éclat d'améthyste", + }, + chargedCrystalMediaAmount: { + "": "Quantité de Média en cristal chargé", + "@Tooltip": "Combien de Média vaut un seul cristal chargé d'améthyste", + }, + mediaToHealthRate: { + "": "Ratio Média/Santé", + "@Tooltip": "Combien de points de Média vaut un demi-coeur lors du lancement d'un sort depuis la barre de santé", + }, + cypherCooldown: { + "": "Temps de recharge du Talisman", + "@Tooltip": "Temps de recharge d'un Talisman en ticks", + }, + trinketCooldown: { + "": "Temps de recharge de la Relique", + "@Tooltip": "Temps de recharge d'une Relique en ticks", + }, + artifactCooldown: { + "": "Temps de recharge de l'Artéfact", + "@Tooltip": "Temps de recharge d'un Artéfact en ticks", + }, + }, + client: { + ctrlTogglesOffStrokeOrder: { + "": "Ctrl affiche l'ordre des traits", + "@Tooltip": "Si la touche Ctrl va plutôt *masquer* l'ordre des traits sur les runes", + }, + invertSpellbookScrollDirection: { + "": "Inverse le sens du défilement du livre de sorts", + "@Tooltip": "Si le défilement vers le haut (opposé à celui vers le bas) va augmenter l'index de la page du livre de sorts et vice versa", + }, + disableInworldScrolling: { + "@Tooltip": "Désactive le défilement du livre de sorts et de l'Abaque dans le monde normal, conservant les touches du clavier et le défilement sur l'écran du sceptre normal", + "": "Désactive le défilement dans le monde", + }, + invertAbacusScrollDirection: { + "": "Inverse le sens de défilement de l'Abaque", + "@Tooltip": "Si le défilement vers le haut (opposé à celui vers le bas) va augmenter la valeur de l'Abaque et vice versa", + }, + gridSnapThreshold: { + "": "Sensibilité de l'accrochage de la grille", + "@Tooltip": "Lors de l'utilisation d'un sceptre, la distance à parcourir d'un point à un autre pour s'y accrocher, où 0.5 signifie 50% de la distance [0.5 - 1]", + }, + clickingTogglesDrawing: { + "": "Cliquer pour activer/désactiver le dessin", + "@Tooltip": "S'il faut cliquer pour commencer et arrêter le dessin au lieu de cliquer et de faire glisser pour dessiner", + }, + alwaysShowListCommas: { + "": "Toujours afficher les virgules des listes", + "@Tooltip": "Si tous les types de iota doivent être séparés par une virgule lorsqu'affichés dans des listes (par défaut, les iotas de runes n'utilisent pas de virgule)", + }, + staticActiveSlates: { + "": "Ardoises statiques actives", + "@Tooltip": "Si les runes sur des ardoises actives doivent être affichées sans oscillation (Améliore grandement les performances lorsqu'il y a beaucoup d'ardoises actives)", + }, + advancedTooltipsShowsIotaNBT: { + "": "Les infobulles avancées affichent les NBT des iotas", + "@Tooltip": "Si activer les infobulles avancées (F3+H) doit afficher le NBT complet des iotas stockés dans des objets comme les Foci et les livres de sorts", + }, + }, + server: { + opBreakHarvestLevel: { + "@Tooltip": "Le niveau de minage du sort \"Briser un block\"\n0 = bois, 1 = roche, 2 = fer, 3 = diamant, 4 = netherite.", + "": "Niveau de minage", + }, + costRescaleListRaw: { + "@Tooltip": "Associe les emplacements des ressources au facteur d'échelle correspondant au coût en Média de cette action spécifique. Par exemple, la commande \"hexcasting:add_motion 3\" multipliera le cout d'Impulsion par 3.", + "": "Facteurs multiplicateurs des coûts par action", + }, + greaterTeleportSplatsItems: { + "": "Téléportation Supérieure projette les objets", + "@Tooltip": "Si les objets devraient être projetés hors de l'inventaire du joueur lorsqu'il utilise Téléportation Supérieure", + }, + doesTrueNameHaveAmbit: { + "": "Est-ce que les Vrais Noms ont une portée", + "@Tooltip": "Si les Vrais Noms (ie référence à un joueur) permettent de cibler le joueur référencé même en dehors de la portée standard", + }, + tpDimDenylist: { + "": "Liste noire de la Téléportation selon les dimensions", + "@Tooltip": "Emplacement des ressources des dimensions où la Téléportation n'est pas autorisée", + }, + maxOpCount: { + "": "Nombre maximal d'actions", + "@Tooltip": "Le nombre maximum d'actions pouvant être exécutées pendant un tick pour éviter de congestionner le serveur.", + }, + maxSpellCircleLength: { + "": "Taille maximum d'un Cercle de Sorts", + "@Tooltip": "Taille maximum d'ardoises dans un Cercle de Sorts", + }, + actionDenyList: { + "": "Liste noire des actions", + "@Tooltip": "Emplacement de ressources pour des actions interdites. Essayer de lancer une de ces actions résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", + }, + circleActionDenyList: { + "": "Liste noire des actions de Cercle", + "@Tooltip": "Emplacement de ressources pour des actions interdites à l'intérieur de Cercles. Essayer de lancer une de ces actions depuis un Cercle résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", + }, + globalCostScaling: { + "": "Facteur multiplicateur global des coûts", + "@Tooltip": "Tous les coûts en Média, à l'exception des actions avec le tag #hexcasting:cannot_modify_cost, seront multipliées par cette valeur. Si vous voulez modifier le coût d'une action avec le tag sus-nommé, utilisez la liste des facteurs par action.", + }, + traderScrollChance: { + "": "Chance d'un Parchemin chez un vendeur itinérant", + "@Tooltip": "Chance d'un Parchemin antique chez un vendeur itinérant", + }, + scrollInjectionsRaw: { + "@Tooltip": "Associe les noms de la table de butins à la quantité de runes par monde que des parchemins doivent contenir . Il y a environ 50% de chance d'avoir un parchemin aléatoire depuis un coffre indiqué ici ; une fois cette condition remplie, entre 1 et plusieurs parchemins sont générés.", + "": "Poids de l'injection des parchemins", + }, + loreInjectionsRaw: { + "": "Lieux d'injection d'histoires", + "@Tooltip": "Liste les tables de butin auxquelles les fragments d'histoire devraient être ajoutés.", + }, + loreChance: { + "": "Chance d'un fragment d'histoire", + "@Tooltip": "Les chances qu'un fragment d'histoire apparaisse dans n'importe laquelle des tables de butin ci-dessus.", + }, + cypherInjectionsRaw: { + "": "Lieux d'injection de Talismans antiques", + "@Tooltip": "Liste les tables de butin auxquelles les Talismans antiques devraient être ajoutés.", + }, + cypherChance: { + "": "Chances d'un Talisman antique", + "@Tooltip": "Les chances qu'un Talisman antique apparaisse dans n'importe laquelle des tables de butin ci-dessus.", + }, + amethystShardModification: { + "": "Changement du taux d'apparition des éclats d'Améthyste", + "@Tooltip": "A quel point le nombre d'éclats d'Améthyste tombés d'un amas d'Améthyste est augmenté/réduit.", + }, + villagersOffendedByMindMurder: { + "": "Villageois offensés par la Psycho-Transversion", + "@Tooltip": "Détermine si les villageois devraient se mettre en colère contre le joueur après avoir été témoin d'une Déchirure Mentale", + }, + }, + }, + title: "Configuration d'HexCasting", + category: { + common: "Commun", + client: "Client", + server: "Serveur", + }, + }, + "emi.category.hexcasting": { + brainsweep: "Déchirure Mentale", + "craft.battery": "Création de Fiole", + edify: "Ensorcellement de Pousse d'Arbre", + villager_leveling: "Amélioration du niveau de commerce", + villager_profession: "Profession de villageois", + }, + "advancement.hexcasting:": { + enlightenment: { + "": "Atteindre l'Illumination", + desc: "Détruire une barrière mentale en lançant un hex qui consomme presque toute ta santé.", + }, + creative_unlocker: { + "": "POUISSANCE ILLIMITÉE", + desc: "Trouve l'objet créatif de debug.", + }, + wasteful_cast: { + "": "Qui ne tente rien...", + desc: "Gaspiller une grande quantité de Média en lançant un hex.", + }, + root: { + desc: "Trouve et mine une forme concentrée de Média se développant profondément sous la terre.", + "": "Études de Sorcellerie", + }, + big_cast: { + "": "...n'a rien", + desc: "Lancer un seul sort qui requiert une quantité immense de Média.", + }, + y_u_no_cast_angy: { + "": "Une Diversion Aveuglante", + desc: "Essaye de lancer un sort depuis un parchemin, mais échouer.", + }, + opened_eyes: { + "": "Yeux ouverts", + desc: "Laisser Mère Nature prendre un bout de votre esprit en paiement de votre sortilège. Que pourrait-il se passer si vous La laisser en avoir plus ?", + }, + lore: { + "": "Histoire de Hexcasting", + desc: "Lire un fragment d'histoire", + }, + "lore/": { + cardamom1: { + "": "Cardamom Steles #1", + desc: "Lettre de Cardamom Steles à son père #1", + }, + cardamom2: { + "": "Cardamom Steles #2", + desc: "Letre de Cardamom Steles à son père #2", + }, + cardamom3: { + "": "Cardamom Steles #3", + desc: "Lettre de Cardamom Steles adressée à son père, #3, 1/2", + }, + cardamom4: { + "": "Cardamom Steles #3 pt2", + desc: "Lettre de Cardamom Steles adressée à son père, #3, 2/2", + }, + cardamom5: { + "": "Cardamom Steles #4", + desc: "Lettre de Cardamom Steles adressée à son père, #4", + }, + experiment1: "Notes d'instance d'Oeil-poudré", + experiment2: "Registre d'entretien avec les Yeux-poudrés", + inventory: "Registre de restoration #72", + }, + }, + hexcasting: { + action: { + "hexcasting:": { + get_caster: "Reflet de l'Esprit", + "const/": { + "null": "Reflet du Néant", + "true": "Reflet de la Vérité", + "false": "Reflet de la Tromperie", + "vec/": { + px: "Reflet Vectoriel +X", + py: "Reflet Vectoriel +Y", + pz: "Reflet Vectoriel +Z", + nx: "Reflet Vectoriel -X", + ny: "Reflet Vectoriel -Y", + nz: "Reflet Vectoriel -Z", + "0": "Reflet Vectoriel Zéro", + }, + "double/": { + pi: "Reflet de la Demi-Lune", + tau: "Reflet de la Pleine Lune", + e: "Reflet d'Euler", + phi: "Reflet Harmonique", + }, + }, + get_media: "Reflet du Média", + "circle/": { + impetus_pos: "Reflet de Waystone", + impetus_dir: "Reflet de Magnétite", + "bounds/min": "Reflet du Pli Inférieur", + "bounds/max": "Reflet du Pli Supérieur", + }, + empty_list: "Reflet du Vide", + stack_len: "Reflet d'Assemblage", + random: "Reflet de l'Entropie", + read: "Reflet du Scribe", + "entity_pos/eye": "Purification de la Boussole", + "entity_pos/foot": "Purification de la Boussole II", + get_entity_look: "Purification de l'Alidade", + get_entity_height: "Purification de Stadiomètre", + get_entity_velocity: "Purification Rythmique", + singleton: "Purification Solitaire", + reverse: "Purification Rétrograde", + get_entity: "Purification d'Entité", + "get_entity/": { + animal: "Purification d'Entité : Animal", + monster: "Purification d'Entité : Monstre", + item: "Purification d'Entité : Objet", + player: "Purification d'Entité : Joueur", + living: "Purification d'Entité : Être vivant", + }, + unique: "Purification d'Unicité", + not: "Purification de Négation", + bool_coerce: "Purification de l'Augure", + abs: "Purification de Longueur", + floor: "Purification de Plancher", + ceil: "Purification de Plafonnage", + sin: "Purification de Sinus", + cos: "Purification de Cosinus", + tan: "Purification de Tangente", + arcsin: "Purification de Sinus Inverse", + arccos: "Purification de Cosinus Inverse", + arctan: "Purification de Tangente Inverse", + coerce_axial: "Purification Axiale", + "read/entity": "Purification du Chroniqueur", + "readable/entity": "Purification de l'Auditeur", + "writable/entity": "Purification de l'Évaluateur", + "flight/can_fly": "Purification de l'Aviateur", + "interop/": { + "gravity/": { + get: "Purification Gravitationnelle", + set: "Altérer la Gravité", + }, + "pehkui/": { + get: "Purification de Gulliver", + set: "Altérer la taille", + }, + }, + "read/local": "Reflet de Munin", + readable: "Reflet de l'Auditeur", + writable: "Reflet de l'Évaluateur", + thanatos: "Reflet de Thanatos", + last_n_list: "Gambit d'Assemblage", + swap: "Gambit du Fou", + rotate: "Gambit Rotatif", + rotate_reverse: "Gambit Rotatif II", + over: "Gambit du Prospecteur", + tuck: "Gambit du Croque-Mort", + "2dup": "Gambit des Dioscures", + duplicate_n: "Gambit du Gémeaux", + fisherman: "Gambit du Pêcheur", + "fisherman/copy": "Gambit du Pêcheur II", + swizzle: "Gambit du Roublard", + write: "Gambit du Scribe", + "write/entity": "Gambit du Chroniqueur", + "write/local": "Gambit d'Huginn", + "akashic/write": "Gambit d'Akasha", + eval: "Gambit d'Hermes", + "eval/cc": "Gambit d'Iris", + for_each: "Gambit de Thoth", + halt: "Gambit de Charon", + unappend: "Décomposition Dérivative", + deconstruct: "Décomposition de l'Orateur", + duplicate: "Décomposition du Gémeaux", + splat: "Désintégration d'Assemblage", + deconstruct_vec: "Désintégration Vectorielle", + slice: "Exaltation Sélective", + replace: "Exaltation du Chirurgien", + "if": "Exaltation de l'Augure", + construct_vec: "Exaltation Vectorielle", + raycast: "Distillation de l'Archer", + "raycast/axis": "Distillation de l'Architecte", + "raycast/entity": "Distillation de l'Éclaireur", + append: "Distillation d'Intégration", + index: "Distillation Sélective", + index_of: "Distillation du Localisateur", + remove_from: "Distillation de l'Exciseur", + construct: "Distillation de l'Orateur", + zone_entity: "Distillation de zone : Tous", + "zone_entity/": { + animal: "Distillation de zone : Animaux", + monster: "Distillation de zone : Monstres", + item: "Distillation de zone : Objets", + player: "Distillation de zone : Joueurs", + living: "Distillation de zone : Êtres vivants", + not_animal: "Distillation de zone : Non-Animaux", + not_monster: "Distillation de zone : Non-Monstres", + not_item: "Distillation de zone : Non-Objets", + not_player: "Distillation de zone : Non-Joueurs", + not_living: "Distillation de zone : Non-Vivants", + }, + type_equals: "Distillation des Similitudes", + type_not_equals: "Distillation des Différences", + "compare_block/": { + lenient: "Distillation de l'Arpenteur", + strict: "Distillation de l'Inspecteur", }, + compare_entity: "Distillation du Taxonomiste", + "compare_item/": { + lenient: "Distillation Trieuse", + strict: "Distillation Empileuse", + }, + and: "Distillation de la Conjonction", + or: "Distillation de la Disjonction", + xor: "Distillation Excluante", + greater: "Distillation Maximale", + less: "Distillation Minimale", + greater_eq: "Distillation Maximale II", + less_eq: "Distillation Minimale II", + equals: "Distillation d'Égalité", + not_equals: "Distillation d'Inégalité", + add: "Distillation Additive", + sub: "Distillation Soustractive", + mul: "Distillation Multiplicative", + div: "Distillation Diviseuse", + pow: "Distillation de Puissance", + modulo: "Distillation du Modulo", + arctan2: "Distillation de la Tangente Inversée", + logarithm: "Distillation Logarithmique", + "akashic/read": "Distillation d'Akasha", + "craft/cypher": "Créer un Talisman", + "craft/trinket": "Créer une Relique", + "craft/artifact": "Créer un Artéfact", + print: "Révéler", + beep: "Faire une Note", + explode: "Explosion", + "explode/fire": "Boule de feu", + add_motion: "Impulsion", + blink: "Clignotement", + break_block: "Briser un block", + place_block: "Placer un block", + "craft/battery": "Créer une fiole", + recharge: "Recharger un objet", + erase: "Suppression d'objet", + create_water: "Créer de l'eau", + destroy_water: "Détruire un liquide", + ignite: "Embraser", + extinguish: "Extinction de zone", + conjure_block: "Conjuration de block", + conjure_light: "Conjuration de lumière", + bonemeal: "Surcroissance", + edify: "Ensorcellement de pousse", + colorize: "Internaliser un pigment", + cycle_variant: "Glamour de l'Ensorceleur", + "sentinel/": { + create: "Invoquer la Sentinelle", + "create/great": "Invoquer la Sentinelle Supérieure", + destroy: "Bannir la Sentinelle", + get_pos: "Localiser la Sentinelle", + wayfind: "Voie de la Sentinelle", + }, + "potion/": { + weakness: "Nadir du Soleil Blanc", + levitation: "Nadir du Soleil Bleu", + wither: "Nadir du Soleil Noir", + poison: "Nadir du Soleil Rouge", + slowness: "Nadir du Soleil Vert", + regeneration: "Zenith du Soleil Blanc", + night_vision: "Zenith du Soleil Bleu", + absorption: "Zenith du Soleil Noir", + haste: "Zenith du Soleil Rouge", + strength: "Zenith du Soleil Vert", + }, + flight: "Altiora", + "flight/range": "Vol de l'Anachorète", + "flight/time": "Vol du Voyageur", + lightning: "Invoquer la foudre", + summon_rain: "Invoquer la pluie", + dispel_rain: "Disperser la pluie", + create_lava: "Créer de la lave", + "teleport/great": "Téléportation Supérieure", + escape: "Considération", + runtime_escape: "Contemplation", + open_paren: "Introspection", + close_paren: "Rétrospection", + open_n_parens: "Méditation", + close_all_parens: "Souvenir", + read_into_parens: "Interjection", + undo: "Évanescence", + }, + "book.hexcasting:": { + number: "Reflet Numérique", + mask: "Gambit du Comptable", + get_entity_height: "Purification du Stadiomètre", + "get_entity/": { + animal: "Purification d'entité : Animal", + monster: "Purification d'entité : Monstre", + item: "Purification d'entité : Objet", + player: "Purification d'entité : Joueur", + living: "Purification d'entité : Être vivant", + }, + zone_entity: "Distillation de zone : N'importe", + "zone_entity/": { + animal: "Distillation de zone : Animaux", + monster: "Distillation de zone : Monstres", + item: "Distillation de zone : Objets", + player: "Distillation de zone : Joueurs", + living: "Distillation de zone : Êtres vivants", + not_animal: "Distillation de zone : Non-Animaux", + not_monster: "Distillation de zone : Non-Monstres", + not_item: "Distillation de zone : Non-Objets", + not_player: "Distillation de zone : Non-Joueurs", + not_living: "Distillation de zone : Non-Vivants", + }, + mul: "Distillation Multiplicative", + div: "Distillation Diviseuse", + arcsin: "Purification de Sinus Inversé", + arccos: "Purification de Cosinus Inversé", + arctan: "Purification de Tangente Inversée", + arctan2: "Distillation de Tangente Inversée", + "const/vec/": { + x: "Reflet Vectoriel +X/-X", + y: "Reflet Vectoriel +Y/-Y", + z: "Reflet Vectoriel +Z/-Z", + }, + "read/entity": "Purification du Chroniqueur", + bool_to_number: "Purification du Numérologue", + }, + }, + page: { + "101": { + "4": "Il est important de noter que l'$(italic)orientation/$ d'une rune ne compte pas vraiment . Ces runes font toutes deux référence à la même action : $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, par exemple .", + "6": "Par example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ crée un iota qui me représente $(italic)moi/$, l'ensorceleur et l'ajoute par dessus le stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$ prend l'iota tout en haut du stack, s'il représente une entité et le transforme en iota qui reflète la position de cette entité.$(br2)Donc, dessiner ces runes dans cet ordre là aurait pour résultat un iota sur le stack qui représente ma position.", + "9": "Bien sûr, rien n'est gratuit dans la vie. Tous les Sorts et quelques autres Actions demandent du $(#b38ef3)Média/$ comme paiement.$(br2)Du mieux que je le comprenne un $(#b38ef3)Sortilège/$ est un peu comme un plan d'action que l'on présente à Mère Nature-- Dans cette analogie, le $(#b38ef3)Média/$ est utilisé pour fournir les arguments qui le justifient, donc Mère Nature accepte ton plan et le mène à ses fins.", + "12": "Je devrais faire bien attention de vraiment avoir suffisamment d'améthyste dans mon inventaire-- certains textes antiques disent que Mère Nature accepte avec joie l'esprit des ensorceleurs comme paiement à la place. Ils décrivent le ressenti comme abominable mais bizarrement euphorique, \"[...] une efferevescente dissolution de lumière et d'énergie...\" Peut-être est-ce pourquoi tous les vieux maîtres de cette discipline ont fini par perdre la tête. J'imagine que brûler des morceaux de ma psyché pour de la puissance ne doit pas $(italic)être très bon pour la santé/$.", + "4.header": "Un Exemple", + }, + couldnt_cast: { + "3": "... Après mûre réflexion ... J'ai découvert un changement dans mon corps .$(p)Il semblerait qu'au lieu d'utiliser de l'$(l:items/amethyst)$(item)Améthyste/$, je suis maintenant capable de lancer des sorts en utilisant ma propre force vitale et mentale -- exactement comme dans les légendes d'autrefois .$(p)Maintenant, je ne suis pas sûr de savoir pourquoi j'en suis capable. C'est juste que... la vérité-science-fardeau a toujours été là, et je peux le voir clairement désormais . Je la connais . Je l'endure .$(br2)Bienheureusement, je suis également bien conscient de mes limites-- Je pense avoir accès à approximativement deux $(l:items/amethyst)$(item)Améthystes Chargées/$ de $(#b38ef3)Média/$ lorsque ma santé est à son apogée.", + }, + stack: { + "3": "Les actions sont (pour la plupart) sont limitées aux interactions avec le stack de sorcellerie de ces façons là. Ils vont prendre les iotas qui les intéressent (aussi connus comme \"arguments\" ou \"paramètres\"), puis les traiter et pousser une certaines quantité de résultats.$(br2)Bien évidemment, certaines actions (p. ex. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$) peuvent ne pas donner d'arguments et d'autres actions (en particulier les sorts) peuvent ne rien produire après coup.", + "4": "Des actions encore plus complexes peuvent être exprimées avec des termes comme pousser, prendre et observer. Par exemple, le $(l:patterns/stackmanip#hexcasting:swap)$(action)Gambit du Fou/$ échange les deux iotas du dessus de la stack. Cela peut être visualisé comme prendre deux iotas et les pousser dans l'ordre inverse. Autre exemple, la $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Décomposition du Gémeaux/$ duplique le sommet de la stack -- en d'autres mots, on observe la stack et on pousse une copie de ce que l'on trouve.", }, + naming: { + "2": "$(li)Un $(thing)Reflet/$ ne prend rien et pousse un iota. $(li)Une $(thing)Purification/$ prend un iota et en pousse un autre. $(li)Une $(thing)Distillation/$ prend deux iotas et n'en pousse qu'un seul. $(li)Une $(thing)Exaltation/$ prend trois iotas ou plus et n'en pousse qu'un seul. $(li)Une $(thing)Décomposition/$ prend un argument et en pousse deux autres. $(li)Une $(thing)Désintégration/$ en prend une et en pousse trois ou plus. $(li)Enfin, un $(thing)Gambit/$ en pousse ou en prend n'importe quel autre nombre (ou il manipule le stack d'une quelconque autre manière).", + "3": "Les Sorts semblent être une exception à cette nomenclature et sont plus ou moins nommés en fonction de ce qu'ils font -- après tout, pourquoi appeler un Sort $(action)Gambit de Demoman/$ quand on peut juste dire $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$ ?", + }, + thought_knot: { + "2": "Quand je le craft il ne contient pas d'iota. En utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ en tenant un $(item)Noeud-Pensée/$ dans mon autre main, j'enlève l'iota sur la stack et l'enregistre dans le $(item)Noeud-Pensée/$. En utilisant le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, je copie l'iota contenu dans le $(item)Noeud-Pensée/$ et l'ajoute sur la stack.$(br2)Une fois que l'on a écrit dans un $(item)Noeud-Pensée/$, son fil est inexorablement noué ; l'iota peut être lu autant de fois que voulu, mais il est impossible d'effacer ou de remplacer son contenu. Heureusement qu'ils ne sont pas chers à produire.", + "3": "D'ailleurs, si j'enregistre une entité dans un $(item)Noeud-Pensée/$ et que j'essaye de le rappeler après la mort ou la disparition de l'entité, le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$ ajoutera $(thing)Null/$ au stack à son lieu.", + }, + spellcircles: { + "2": "Pour commencer le rituel j'ai besoin d'un $(l:greatwork/impetus)$(item)Impetus/$ pour créer une vague de $(#b38ef3)Média/$ auto-suffisante. Cette vague voyage au travers d'$(l:items/slate)$(item)slates/$ ou d'autres blocks adaptés, activant chaque rune qu'elle rencontre.$(br2)S'il n'y a aucun moyen pour la vague de rejoindre l'$(l:greatwork/impetus)$(item)Impetus/$, le rituel échouera immédiatement. Il faut également prendre en compte que la direction dans laquelle la vague sort d'un block DOIT être claire, ou le rituel échouera au block avec trop de voisins.", + "4": "Miracle parmi les miracles, le cercle ne consommera ni le $(#b38ef3)Média/$ de mon inventaire ni de mon esprit. A la place, des éclats cristallisés de $(#b38ef3)Média/$ doivent être fournis à l'$(l:greatwork/impetus)$(item)Impetus/$ via un entonnoir, ou des méthodes similaires.$(br2)L'utilisation d'une $(l:items/lens)$(item)Lentille de Divination/$ montrera combien de $(#b38ef3)Média/$ est contenu dans l'$(l:greatwork/impetus)$(item)Impetus/$, en équivalent de poussière.", + "7": "J'ai aussi trouvé un croquis d'un Cercle de Sorts utilisé par les anciens enfoui quelque part dans mes notes . Sur l'autre page se trouve ma copie (bien que de piètre qualité) de celui-ci .$(br2)Les runes là-dessus auraient été éxécutées dans le sens inverse des aiguilles d'une montre, en commençant par le $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ et en se terminant par $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Téléportation Supérieure/$.", + }, + impetus: { + "1": "La fluctuation de $(#b38ef3)Média/$ nécessaire pour activer un Cercle de Sorts est complexe. Même les mortels avec les yeux les plus aiguisés et les mains les plus agiles ne pourrait pas servir d'$(l:greatwork/impetus)$(item)Impetus/$ et tisser le $(#b38ef3)Média/$ en l'ouroboros auto-suffisant nécessaire.$(br2)Le problème c'est que l'esprit est trop rempli d'autres $(italics)pensées parasites/$ inutiles.", + }, + casting: { + iotas: { + "3": "Généralement, je fournis des iotas à des actions. Par exemple, prenons $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. Ce Sort nécessite un iota numérique, pour indiquer sa force, et un iota vectoriel, pour indiquer sa position.$(br2)Ou alors, prenons $(l:patterns/basic#hexcasting:get_pos)$(action)Purification de la Boussole/$. Il prend un iota d'entité et le transforme en un iota vectoriel, qui représente la position de cette entité.", + "1": "Les \"noms\" dans la langue de Mère Nature sont appelés des $(thing)iotas/$. Au niveau le plus bas, la Sorcellerie est l'art de manipuler les iotas.$(br2)Il existe de nombreuses variétés d'iotas:$(li)Les Nombres (que certaines légendes appelent \"doubles\").$(li)Les Vecteurs, une collection de trois nombres qui représentent une position, un mouvement ou une direction.$(li)Les Booléens ou juste \"bool\" pour faire court, qui représentent un Vrai ou un Faux abstrait.$(li)Les Entités, comme moi-même, les poulets et les wagons.", + }, + grid: { + "1": "Je fournis généralement mes runes à Mère Nature grâce à mon $(l:items/staff)$(item)Sceptre/$ . Quand j'appuie sur $(thing)$(k:use)/$ avec un Sceptre dans l'une de mes mains une grille hexagonale de petits points apparait devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour tracer et relâcher pour terminer de dessiner mes runes . $(br2) Une fois la rune relâchée, elle est exécutée (voir chapitre suivant) .", + "2": "Appuyer sur $(thing)$(k:escape)/$ enregistre et ferme la grille ; lorsque j'utilise mon Sceptre à nouveau, toutes mes runes et tous mes iotas y seront toujours. $(br2) Si je souhaite reprendre mon sortilège de zéro, je peux réinitialiser ma grille en m'accroupissant lors de son ouverture.", + }, + "patterns&actions": { + "1": "Les $(thing)Runes/$ sont des chemins tracés dans la grille de $(#b38ef3)Média/$. Je pense que la géométrie à six côtés caractéristique de mon art doit être ce qui lui a donné son nom : l'Ésométrie... ou l'Isotérie... ? Laisse tomber, appelons ça juste Sorcellerie... Sobre, concis, approprié. $(br2)$Toujours est-il que ces Runes $(italic)produisent/$ des $(thing)Actions.", + "2": "La subtilité est similaire à celle qui distingue les $(italic)mots/$ de leur $(italic)signification/$. N'importe quel mélange aléatoire de lettres forme un mot, mais la plupart d'entre eux (comme \"xnopyt\") ne veulent rien dire. Pareillement, n'importe quel gribouillage tracé maladroitement dans le $(#b38ef3)Média/$ est $(italic)techniquement/$ une Rune, mais la plupart d'entre eux ne feront rien.", + "3": "Les Actions sont un peu comme des commandes pour les grand systèmes qui gouvernent l'univers (que j'ai vu de nombreux textes personifier en \"Mère Nature.\"). En général, elles font une des choses suivantes:$(li)Rassembler des informations sur le monde, comme la position d'une entité.$(li)Manipuler l'information rassemblée, comme trouver la distance entre deux positions.$(li)Déclencher un effet magique sur le monde, comme invoquer la foudre ou une explosion.$(br)Ces Actions là à la fin sont appelées \"Sorts\", et sont souvent ce qui attirent les gens vers cette discipline.", + "4": "Un $(#b38ef3)Sortilège/$, donc, est une séquence de Runes valides présentées à Mère Nature. Mère Nature les interpète une par une et si Elle comprend mon intention, elle change le monde en suivant ma volonté. (Ou du moins ce qu'elle pense être ma volonté)", + "5": "Même si certaines Actions peuvent être exécutées facilement, d'autres demandent un sacrifice sous la forme de Média cristallisé. Je pense que le concentré d'énergie psychique est présenté comme un argument à Mère Nature, pour la convaincre de faire ce que je lui demande. La majorité des Sorts requierent ce paiement mais certaines Actions normales l'exigent aussi.$(br2)J'ai archivé leur coût, si applicable, sur leurs pages respectives.", + }, + }, + vectors: { + "9": "Diviser un vecteur par sa propre longueur produit un vecteur unitaire, qui a la même direction que l'original mais une longueur d'exactement 1. C'est parfois utile si la direction du vecteur est la seule chose qui nous importe. Ils sont également bien pratiques dans le cas où je multiplie un vecteur unitaire par un nombre pour avoir un nouveau vecteur avec exactement la même longueur.$(br2) Beaucoup de runes qui calculent une direction quelconque, comme la $(l:patterns/basics#hexcasting:get_entity_look)Purification d'Alidade/$, fournissent un vecteur unitaire.", + "10": "Toutes les opérations décrites jusque là, et plusieurs autres, peuvent être réalisées en utilisant des Runes trouvées dans la section $(l:patterns/math)Mathématiques/$.$(br2)Je peux créer de nouveaux vecteurs en récupérant des informations d'entités en utilisant des $(l:patterns/basics)Runes Basiques/$, des $(l:patterns/consts)Constantes/$ pour créer des vecteurs unitaires pour des directions basiques, ou directement en combinant trois nombres avec l'$(l:patterns/math#hexcasting:construct_vec)Exaltation Vectorielle/$.", + }, + basics_pattern: { + raycast: { + "2": "S'il ne trouve pas de cible, les vecteurs se combineront en $(thing)Null/$ . $(br2)Une séquence familière de runes, connue sous le nom de \"Formule du Rayon Cible\", est $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Purification de l'Alidade/$, $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$. Ensembles, ils renvoient la position du bloc que je regarde sous forme de vecteur.", + }, + "raycast/axis": { + "1": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place un vecteur répondant à la question : Quel $(italic)côté/$ du bloc je regarde ? Coûte une quantité négligeable de $(media)Média/$.", + }, + "raycast/entity": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place $(italic)l'entité/$ que je regarde. Coûte une quantité négligeable de $(media)Média/$.", + }, + interop: { + gravity: { + set: "Définit la direction principale de la gravité affectant l'entité. Le vecteur donné sera contraint par l'axe le plus proche, comme avec $(l:patterns/math#hexcasting:coerce_axial)$(action)Purification Axiale/$. Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", + }, + }, + abacus: { + "1": "Malgré l'existence de $(l:patterns/numbers)$(action)runes pour dessiner des nombres/$, je les trouve, disons ... pénibles, pour ne pas dire davantage . $(br2)Bienheureusement, les antiques maîtres de cet art ont inventé un appareil particulièrement ingénieux qu'ils appelaient un $(l:items/abacus)$(item)Abaque/$ qui fournit des nombres à ma sorcellerie . Je le règle simplement au nombre que je désire, puis je lis sa valeur en lançant $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, exactement comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$ ou un $(l:items/focus)$(item)Focus/$ .", + }, + readwrite: { + "read/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, mais l'iota est lu depuis une entité plutôt que depuis l'objet dans mon autre main .", + "readable/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet de l'Auditeur/$, mais vérifie la lisibilité d'une entité plutôt que celle de l'objet dans mon autre main .", + "writable/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet de l'Évaluateur/$, mais vérifie l'écrivabilité d'une entité plutôt que celle de l'objet dans mon autre main .", + "write/entity": "Similaire au $(l:patterns/readwrite#hexcasting:read)$(action)Gambit du Scribe/$, mais l'iota est écrit dans une entité au lieu de l'objet dans mon autre main.$(br2)Détail intéressant à noter, il semblerait que je ne puisse pas écrire mon Vrai Nom en utilisant ce sort. J'ai l'intuition que cela aurait pu être dangereux si c'était possible.", + local: "Les objets ne sont pas les seuls endroits où je peux stocker des informations. Je peux également stocker des informations dans le $(#b38ef3)Média/$ du $(#b38ef3)Sortilège/$ lui-même, comme avec la stack, mais séparément. Les textes en parlent sous le nom d'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$. Il ne contient qu'un seul iota, comme le ferait un $(l:items/focus)$(item)Focus/$, et comme lui commence avec la valeur $(thing)Null/$. Il est préservé entre les iterations du $(l:patterns/meta#hexcasting:for_each)$(action)Gambit de Thoth/$, mais ne dure que le temps du $(#b38ef3)Sortilège/$ dont il fait partie. Lorsque je finis de concevoir mon $(#b38ef3)Sortilège/$, la valeur sera perdue.", + "read/local": "Copie l'iota présent dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, que je viens surement d'écrire avec le $(l:patterns/readwrite#hexcasting:write/local)$(action)Gambit d'Huginn/$.", + }, + start_to_see: { + "1": "Les textes ne mentaient pas. Mère Nature a pris son dû.", + "2": "Ç... Ça...$(p)...c'était l'une des $(italic)pires/$ choses que j'ai $(italic)jamais/$ vécu. J'ai offert mon plan à Mère Nature, elle m'a rendu un sourire imperturbable et une sensation de déchirure en retour-- une partie de moi se faisait balayer comme de la poussière d'Améthyste dans le vent.$(p) J'ai déjà de la chance d'avoir $(italic)survécu/$ alors avoir la lucidité nécessaire pour écrire ces mots-- Je dois déclarer cette affaire classée et vérifier plus attentivement avant de lancer plus de $(#b38ef3)Sortilèges/$. Je ne referai jamais une telle erreur.", + }, + whats_a_hex: { + "2": "En général, cela prend la forme d'une liste d'iotas de rune, créée par les techniques décrites dans $(l:patterns/patterns_as_iotas)Runes d'Échappement/$. Avec mon $(#b38ef3)Sortilège/$ placé ainsi dans la stack, je peux le lancer en utilisant des runes de meta-évaluation comme le $(l:patterns/meta#hexcasting:eval)Gambit d'Hermes/$, ou infuser cela dans un $(l:items/hexcasting)Catalyseur de Sortilèges/$ pour être réutilisé facilement.$(br2)À noter que cette liste n'est pas différente de n'importe quel iota de liste - Je peux la manipuler, la sauvegarder dans des $(l:items/focus)stockages/$ $(l:items/thought_knot)permanents/$, ou même l'incorporer dans un autre $(#b38ef3)Sortilège/$.", + }, + focus: { + "1": "Un $(item)Focus/$ est comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$, dans le sens qu'un iota peut être écrit ou lu depuis. Cependant, l'avantage d'un Focus est qu'il est $(italic)réutilisable/$. Si je fais une erreur avec l'iota que j'écris dans un $(item)Focus/$, je peux simplement lancer le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ une nouvelle fois et écrire par-dessus l'iota présent à l'intérieur.", + "2": "Si je souhaite protéger un $(l:items/focus)$(item)Focus/$ d'une réécriture accidentelle, je peux le sceller avec de la cire en le plaçant dans un craft avec $(item)Rayon de miel/$. Essayer d'utiliser le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ sur un Focus scellé échouera.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Suppression de Catalyseur/$ retirera à la fois le sceau et le contenu du Focus.", + }, + spellbook: { + "2": "Comme pour les $(l:items/focus)$(item)Focus/$, il existe une méthode simple pour éviter des réécritures accidentelles. Placer le livre dans un craft avec un $(item)Rayon de miel/$ protègera la page actuelle, empêchant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ de modifier son contenu. Tout comme un $(l:items/focus)$(item)Focus/$, utiliser $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Suppression de Catalyseur/$ retirera la protection avec le contenu de la page.$(br2)Je peux aussi nommer chaque page individuellement avec une enclume. Nommer le livre ne changera que le nom de la page actuellement sélectionnée, pour une navigation facilitée.", + }, + scroll: { + "1": "Un $(l:items/scroll)$(item)Parchemin/$ est moyen pratique de partager une Rune avec d'autres. Je peux y copier une Rune avec le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$, après quoi cela s'affichera dans une infobulle.$(br2)Je peux aussi les placer sur des murs en décoration ou inspiration, comme je le ferais avec des tableaux, avec une taille allant de 1x1 à 3x3. Utiliser de la $(l:items/amethyst)$(item)Poussière d'Améthyste/$ sur un Parchemin avec une Rune affichera l'ordre des traits.", + }, + stackmanip: { + "pseudo-novice.title": "Gambit du Novice", + "pseudo-novice": "Retire le premier iota de la stack.$(br2)Il semblerait que ce soit un cas particulier du $(l:patterns/stackmanip#hexcasting:mask)$(action)Gambit du Comptable/$.", + "fisherman/copy": "Similaire au $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Gambit du Pêcheur/$, mais au lieu de déplacer l'iota, le copie.", + mask: { + "2": "En considérant que je dessine le Gambit du Comptable de gauche à droite, le nombre d'iotas requis pour cette action sera déterminé par la longueur horizontale de la Rune. La rune prend ces iotas depuis le haut de la pile puis commence à les traiter en commençant par le plus bas d'entre eux. Une ligne plate conservera l'iota alors qu'un triangle incliné vers le bas le supprimera.$(br2)Si ma stack contient $(italic)0, 1, 2/$ (de bas en haut), dessiner la première rune résultera en $(italic)1/$, la seconde résultera en $(italic)0/$ et la troisième résultera en $(italic)0, 2/$ (Le 0 du bas est laissé intact).", + "1": "Une famille infinie d'actions qui conservent ou suppriment les éléments en haut de la stack, en fonction d'une série de creux et de lignes.", + }, + }, + patterns_as_iotas: { + runtime_escape: { + "2": "Certains trouveront peut-être utile de penser à ça comme \"échapper\" la Rune dans la stack, si jamais il se pourrait qu'ils soient familiers avec la science des ordinateurs.$(br2)L'utilisation la plus commune est de copier la Rune dans un $(l:items/scroll)$(item)Parchemin/$ ou une $(l:items/slate)$(item)Ardoise/$ en utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ et peut-être les utiliser comme décoration.", + }, + 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 $(#b38ef3)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.", + }, + }, + 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 $(#b38ef3)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.", + "eval/cc.1": "Exécute quelque chose d'évaluable de la stack exactement comme le ferait le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$, à l'exception qu'un unique iota \"Saut\" est poussé à la stack au préalable. ", + "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.", + }, + mishaps: { + "1": "Malheureusement, je ne suis pas (encore) un être parfait. Je fais des erreurs de temps à autre dans mes études et dans ma conception de $(#b38ef3)Sortilèges/$ ; par exemple, mal dessiner une Rune ou essayer de produire une Action avec les mauvais iotas. Et Mère Nature n'apprécie pas beaucoup mes erreurs-- ce qui cause un $(italic)méchef/$.", + }, + phials: { + "1": "Je trouve ça assez... agaçant, la façon dont Mère-Nature refuse de me donner la change pour mon travail. Si tout ce que j'ai en main est une $(l:items/amethyst)$(item)Améthyste Chargée/$, même la plus petite des $(l:patterns/basics#hexcasting:raycast)$(action)Distillations de l'Archer/$ consommera l'entièreté du cristal, gaspillant le $(media)Média/$.$(br2)Heureusement, il semblerait que j'ai trouvé un moyen d'en quelque sorte pallier à ce problème.", + "2": "J'ai trouvé d'antiques parchemins décrivant une $(item)fiole/$ infusée avec du $(media)média/$. Lorsque je conçois des $(hex)Sortilèges/$, mes sorts draineraient plutôt leur $(media)média/$ de la fiole. La forme liquide du $(media)média/$ me laisserait l'équivalent exact, ou pour le dire autrement : rien ne serait gaspillé. C'est un peu comme la batterie interne d'une $(l:items/hexcasting)$(item)Relique/$, ou similaire ; Je peux même utiliser la $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ de la même manière.", + }, + 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/$.", + }, + types: { + "compare_item/": { + strict: "Similaire à la $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Distillation Trieuse/$, mais pousse s'ils sont des objets identiques. Deux $(l:items/focus)$(item)Foci/$ ne seront considérés identiques que s'ils contiennent le même iota et ont $(l:patterns/spells/cyclevariant)$(thing)la même apparence/$.", + }, + }, + hexcasting: { + "2": "Pour cela, je peux créer un des trois types d'objets magiques : $(l:items/hexcasting)$(item)Talismans/$, $(l:items/hexcasting)$(item)Reliques/$ ou $(l:items/hexcasting)$(item)Artéfacts/$. Tous peuvent contenir les runes d'un $(hex)sortilège/$ à l'intérieur, ainsi qu'une petite batterie contenant du $(media)média/$.$(br2)Il suffit d'en tenir un et d'appuyer sur $(thing)$(k:use)/$ pour activer les runes à l'intérieur, comme si son propriétaire venait de concevoir le sortilège avec son sceptre, tout en utilisant sa batterie interne.", + "3": "Chaque objet a ses propres particularités : $(br2)Les $(l:items/hexcasting)$(item)Talismans/$ sont fragiles, détruits après que leurs réserves de $(media)média/$ soient épuisées et ils ne $(italic)peuvent pas/$ être rechargés ;$(br2)Les $(l:items/hexcasting)$(item)Reliques/$ peuvent être utilisées aussi souvent que leur propriétaire le souhaite, tant qu'il y a suffisamment de $(media)média/$ restant, mais deviennent ensuite inutiles jusqu'à ce qu'elles soient rechargées.", + "4": "Les $(l:items/hexcasting)$(item)Artéfacts/$ sont les plus puissants de tous -- après que leur $(media)média/$ soit entièrement vidé, ils peuvent utiliser l'$(l:items/amethyst)$(item)Améthyste/$ depuis l'inventaire de leur propriétaire comme paiement pour le $(hex)Sortilège/$, comme je le ferais en confectionnant un sort avec un $(l:items/staff)$(item)Sceptre/$. Évidemment, cela signifie aussi que le sort peut consommer leur esprit s'il n'y a pas assez d'$(l:items/amethyst)$(item)Améthyste/$.$(br2)Une fois que j'ai créé un catalyseur de sortilèges vierge avec un banal établi, je peux l'infuser d'un $(hex)sortilège/$ en utilisant (quoi d'autre) un sort approprié pour l'objet. $(l:patterns/spells/hexcasting)J'ai catalogué les runes ici./$", + }, + ancient_cyphers: { + "1": "Lors de mes aventures, j'ai fini par découvrir ce qui semble être des $(l:items/hexcasting)$(item)Talismans/$ créés par les anciens Ensorceleurs des temps passés. Ces $(item)Talismans anciens/$ fonctionnent de la même façon que ceux que je peux créé : Ils ne peuvent pas être rechargés et se briseront une fois leurs réserves de $(media)média/$ arrivées à terme. Cependant, contrairement à mes propres $(l:items/hexcasting)$(item)Talismans/$, leur structure détériorée me permet d'apercevoir le $(hex)Sortilège/$ stocké en eux.", + "2": "Ils peuvent être assez utiles pour apprendre de nouvelles techniques - qui pourrait mieux m'enseigner que les anciens maîtres de cet art ? $(br2)Alternativement, je peux supprimer le contenu de l'un d'entre eux et y stocker mes propres $(hex)Sortilèges/$ à l'intérieur, créant un catalyseur de sortilèges qui affiche clairement sa fonction.", + "3": "Le (l:items/pigments)$(item)Pigment/$ infusé dans ces reliques est un mélange unique entre le violet et l'orange, correspondant à leur apparence cuivre-et-améthyste. Je peux le répliquer en utilisant la recette ci-dessus.", + }, + hexcasting_spell: { + "craft/cypher": "Coûte environ une $(l:items/amethyst)$(item)Améthyste Chargée/$.", + "craft/trinket": "Coûte environ cinq $(l:items/amethyst)$(item)Améthystes Chargées/$.", + "erase.2": "Le sort videra aussi tout le $(media)média/$ stocké dans l'objet, le renvoyant à Mère-Nature et me rendant l'objet dans un état totalement neuf. De cette manière, je peux réutiliser les $(l:items/hexcasting)$(item)Reliques/$ dans lesquelles j'ai placé un sort erroné, par exemple.$(br2)Cela fonctionne aussi pour nettoyer un $(l:items/focus)$(item)Focus/$ ou une page de $(l:items/spellbook)$(item)Livre de Sorts/$, brisant leur sceau par la même occasion.", + "craft/artifact": "Coûte environ 10 (l:items/amethyst)$(item)Améthystes Chargées/$.", + }, + cycle_variant: "Certains objets que je crée semblent étrangement réceptifs à l'influence du $(media)média/$. En tenant en main un $(l:items/hexcasting)$(item)Talisman/$, une $(l:items/hexcasting)$(item)Relique/$, un $(l:items/hexcasting)$(item)Artéfact/$, $(l:items/focus)$(item)Focus/$ ou un $(l:items/spellbook)$(item)Livre de Sorts/$ dans mon autre main, je peux utiliser ce sort pour changer leur apparence. Coûte une quantité négligeable de $(media)média/$.", + }, + "special.hexcasting:": { + number: "Reflet Numérique : %s", + mask: "Gambit du Comptable : %s", + }, + "pattern.unknown": "Emplacement de rune inconnu %s", + debug: { + media_withdrawn: "%s - Média retiré : %s", + "media_withdrawn.with_dust": "%s - Média retiré : %s (%s en poussière)", + media_inserted: "%s - Média inséré : %s", + "media_inserted.with_dust": "%s - Média inséré : %s (%s en poussière)", + all_media: "Contenu complet", + infinite_media: "Infini", + }, + loot_hex: { + shatter: "Briser", + illuminate: "Illuminé", + growth: "Croissance", + ascend: "Ascension", + sidestep: "Esquive", + blink: "Clignotement", + blastoff: "Décollage", + radar: "Radar", + beckon: "Attraction", + detonate: "Détonation", + shockwave: "Onde de choc", + heat_wave: "Vague de chaleur", + wither_wave: "Vague de décomposition", + flight_zone: "Zone de vol", + kindle: "Embrasement", + lunge: "Projection", + }, + message: { + cant_overcast: "Ce sortilège nécessite plus de Média que j'en possède... Je devrais revérifier mes calculs.", + cant_great_spell: "Le Sort a échoué, pour une raison ou une autre... est-ce que je ne suis pas assez compétent ?", + }, + tooltip: { + spellbook: { + page: { + "": "Page sélectionnée %d/%d", + sealed: "Page sélectionnée %d/%d (%s)", + }, + page_with_name: { + "": "Page sélectionnée %d/%d (\"%s\")", + sealed: "Page sélectionnée %d/%d (\"%s\") (%s)", + }, + empty: { + "": "Vide", + sealed: "Vide (%s)", + }, + sealed: "Scellé", + }, + scroll: { + needs_purchase: "Acheter pour afficher la rune", + pattern_not_loaded: "Placer dans l'inventaire pour charger la rune", + "recalc_warning.line1": "La rune par monde pour %s n'a pas encore été calculée !", + "recalc_warning.line2": "S'il vous plaît, utilisez /hexcasting recalcPatterns, puis prenez un nouveau parchemin.", + }, + abacus: { + "": "%d", + reset: "Réinitialise à 0", + "reset.nice": "bien", + }, + circle: { + no_exit: "Le flot de Média n'a pas pu trouver de sortie à %s", + many_exits: "Le flot de Média a trop de sorties à %s", + no_closure: "Le flot de Média ne sera pas capable de retourner dans l'Impetus à %s", + }, + lens: { + "pattern.invalid": "Rune invalide", + bee: { + "": "%s abeilles", + single: "%s abeille", + }, + "impetus.redstone.bound": { + "": "Lié à %s", + none: "Délié", + }, + akashic: { + "record.count": { + "": "%s iotas stockés", + single: "%s iota stocké", + }, + "bookshelf.location": "Archive à %s", + }, + }, + brainsweep: { + min_level: "Niveau %s ou supérieur", + level: "Niveau %s", + product: "Coquille vide", + }, + media: "%d poussière", + media_amount: "Contient : %s (%s)", + "media_amount.advanced": "Contient : %s/%s (%s)", + stored_hex: "Sortilège : ", + list_contents: "[%s]", + null_iota: "Null", + jump_iota: "[Saut]", + pattern_iota: "Rune de Sortilège (%s)", + boolean_true: "Vrai", + boolean_false: "Faux", + }, + spelldata: { + onitem: "Contient : %s", + anything: "N'importe quoi", + unknown: "Un iota brisé", + "entity.whoknows": "Une entité inconnue", + "akashic.nopos": "L'archive possédée ne connaît aucun iota présent (ceci est un bug ", + example: "", + description: "Visuels des Runes de Sorcellerie", + }, + "death.attack.hexcasting": { + overcast: { + "": "L'esprit de %s a été converti en énergie", + player: "L'esprit de %s a été converti en énergie en se battant contre %s", }, }, } From 2af1beaa2880e135deeb23460fc0e268840023b8 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 19 Aug 2026 04:49:45 +0000 Subject: [PATCH 34/50] chore(l10n): update Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation Co-authored-by: Hexxy Weblate Co-authored-by: ManicTv Co-authored-by: Stanisław Budny Language: Polish Progress: 12.7% (177 of 1386 strings) Progress: 22.2% (308 of 1386 strings) Progress: 24.8% (345 of 1386 strings) Progress: 25.3% (351 of 1386 strings) Progress: 28.4% (394 of 1386 strings) Progress: 4.3% (1 of 23 strings) Progress: 43.4% (10 of 23 strings) 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/pl/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/pl_pl.flatten.json5 | 502 +++++++++++++++++- .../hexcasting/lang/pl_pl.flatten.json5 | 25 +- 2 files changed, 517 insertions(+), 10 deletions(-) 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 7a2d068868..013c46a1af 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 @@ -13,12 +13,12 @@ cherry: "Wiśniowy Kostur", bamboo: "Bambusowy Kostur", edified: "Oświecony Kostur", - quenched: "Stłamszony kostur", - mindsplice: "Spleciony kostur", + quenched: "Stłamszony Kostur", + mindsplice: "Spleciony Kostur", }, amethyst_dust: "Ametystowy Pył", charged_amethyst: "Naładowany Ametyst", - quenched_allay_shard: "Odłamek Wygaszonego Otuszka", + quenched_allay_shard: "Odłamek Stłamszonego Otuszka", scroll_small: { "": "Mały Zwój", empty: "Mały Pusty Zwój", @@ -29,7 +29,7 @@ }, scroll: { "": "Duży Zwój", - of: "Starożytny Zwój - %s", + of: "Starożytny Zwój: %s", empty: "Duży Pusty Zwój", }, focus: { @@ -113,10 +113,10 @@ boolean: "Zwrotnica Pasterza", }, impetus: { - empty: "Pusta Wyrzutnia", - rightclick: "Wyrzutnia Płatnerza", - look: "Wyrzutnia Łuczarza", - redstone: "Wyrzutnia Kapłana", + empty: "Pusty Rdzeń", + rightclick: "Płatnerski Rdzeń", + look: "Łuczarski Rdzeń", + redstone: "Kapłański Rdzeń", }, akashic_: { record: "Kronika Akaszy", @@ -130,7 +130,7 @@ }, slate_: { block: "Blok Płyty", - tiles: "Płytowe Schodki", + tiles: "Płytowe Kafelki", bricks: "Płytowe Cegły", bricks_small: "Drobne Płytowe Cegły", pillar: "Płytowy Filar", @@ -155,6 +155,490 @@ ancient_scroll_paper: "Starożytny Pergamin", edified_: { log: "Oświecona Kłoda", + log_amethyst: "Ametystowy Oświecony Pień", + log_aventurine: "Awenturynowy Oświecony Pień", + log_citrine: "Topazowy Oświecony Pień", + log_purple: "Fioletowy Oświecony Pień", + wood: "Oświecone Drewno", + planks: "Oświecone Deski", + panel: "Oświecony Panel", + tile: "Oświecone Kafelki", + door: "Oświecone Drzwi", + trapdoor: "Oświecona Klapa", + stairs: "Oświecone Schody", + slab: "Oświecona Płyta", + button: "Oświecony Przycisk", + pressure_plate: "Oświecona Płyta Naciskowa", + fence: "Oświecony Płot", + fence_gate: "Oświecona Furtka", }, + quenched_allay: "Stłamszony Otuszek", + quenched_allay_: { + tiles: "Stłamszone Kafelki", + bricks: "Stłamszone Cegły", + bricks_small: "Drobne Stłamszone Cegły", + }, + stripped_edified_log: "Okorowany Oświecony Pień", + stripped_edified_wood: "Okorowane Oświecone Drewno", + amethyst_edified_leaves: "Ametystowe Oświecone Liście", + aventurine_edified_leaves: "Awenturynowe Oświecone Liście", + citrine_edified_leaves: "Opalowe Oświecone Liście", + }, + "effect.hexcasting": { + enlarge_grid: "Olśnienie", + shrink_grid: "Otumanienie", + }, + "item.minecraft.potion.effect": { + enlarge_grid: "Mikstura Olśnienia", + enlarge_grid_long: "Mikstura Olśnienia", + enlarge_grid_strong: "Mikstura Olśnienia", + shrink_grid: "Mikstura Otumanienia", + shrink_grid_long: "Mikstura Otumanienia", + shrink_grid_strong: "Mikstura Otumanienia", + }, + "item.minecraft.splash_potion.effect": { + enlarge_grid: "Miotana Mikstura Olśnienia", + enlarge_grid_long: "Miotana Mikstura Olśnienia", + enlarge_grid_strong: "Miotana Mikstura Olśnienia", + shrink_grid: "Miotana Mikstura Otumanienia", + shrink_grid_long: "Miotana Mikstura Otumanienia", + shrink_grid_strong: "Miotana Mikstura Otumanienia", + }, + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "Trwała Mikstura Olśnienia", + enlarge_grid_long: "Trwała Mikstura Olśnienia", + enlarge_grid_strong: "Trwała Mikstura Olśnienia", + shrink_grid: "Trwała Mikstura Otumanienia", + shrink_grid_long: "Trwała Mikstura Otumanienia", + shrink_grid_strong: "Trwała Mikstura Otumanienia", + }, + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "Strzała Olśnienia", + enlarge_grid_long: "Strzała Olśnienia", + enlarge_grid_strong: "Strzała Olśnienia", + shrink_grid: "Strzała Otumanienia", + shrink_grid_long: "Strzała Otumanienia", + shrink_grid_strong: "Strzała Otumanienia", + }, + "itemGroup.hexcasting": { + hexcasting: "Hex Casting", + scrolls: "Hex Casting (Zwoje)", + }, + "category.hexcasting": { + binds: "Hex Casting", + }, + "key.hexcasting": { + spellbook_prev: "Poprzednia Strona Księgi Zaklęć", + spellbook_next: "Następna Strona Księgi Zaklęć", + }, + "tag.hexcasting": { + staves: "Kostury", + edified_logs: "Oświecone Kłody", + edified_planks: "Oświecone Deski", + phial_base: "Puste Fiolki", + }, + "tag.item.hexcasting": { + directrices: "Zwrotnice", + grants_root_advancement: "Przyznaje Pierwotny Postęp", + brainswept_circle_components: "Umózgowione Elementy Kręgów", + seal_materials: "Pieczętujące Materiały", + impeti: "Rdzenie", + }, + "emi.category.hexcasting": { + brainsweep: "Obrzynanie Umysłów", + "craft.battery": "Tworzenie Fiolki", + edify: "Oświecanie Sadzonki", + villager_leveling: "Ulepszanie Ofert", + villager_profession: "Profesja Osadnika", + }, + "gui.hexcasting": { + spellcasting: "Splot", + }, + "text.autoconfig.hexcasting": { + title: "Opcje Hexcasting", + category: { + common: "Ogólne", + client: "Użytkownik", + server: "Serwer", + }, + option: { + common: { + dustMediaAmount: { + "@Tooltip": "Ilość przepływu, jaką mieści w sobie pojedynczy Ametystowy Pył", + "": "Ilość Przepływu w Pyle", + }, + shardMediaAmount: { + "": "Ilość Przepływu w Odłamkach", + "@Tooltip": "Ilość przepływu, jaką mieści w sobie pojedynczy Odłamek Ametystu", + }, + chargedCrystalMediaAmount: { + "": "Ilość Przepływu w Naładowanych Kryształach", + "@Tooltip": "Ilość przepływu, jaką mieści w sobie pojedynczy Naładowany Kryształ Ametystu", + }, + mediaToHealthRate: { + "": "Stosunek Przepływu do Życia", + "@Tooltip": "Ilość punktów przepływu równych połowie serca podczas czarowania za pomocą HP", + }, + cypherCooldown: { + "": "Czas Odnowy Cacek", + "@Tooltip": "Czas odnowy cacek, liczony w tickach", + }, + trinketCooldown: { + "": "Czas Odnowy Bibelotów", + "@Tooltip": "Czas odnowy bibelotów, liczony w tickach", + }, + artifactCooldown: { + "": "Czas Odnowy Artefaktów", + "@Tooltip": "Czas odnowy artefaktów, liczony w tickach", + }, + }, + client: { + ctrlTogglesOffStrokeOrder: { + "": "Ctrl Chowa Kolejność Pociągnięć", + "@Tooltip": "Przytrzymanie klawisza ctrl teraz *wyłączy* pokazywanie gradientu na symbolach", + }, + disableInworldScrolling: { + "": "Wyłącz Przewijanie Poza Czarowaniem", + "@Tooltip": "Wyłącza interakcje środkowego przycisku myszy z księgami zaklęć i liczydłami w normalnym świecie, pozostawiając przypisane klawisze i interakcje w ekranie kostura takie same", + }, + invertSpellbookScrollDirection: { + "": "Odwróć Przewijanie Księgi Zaklęć", + "@Tooltip": "Zmienia kierunek przewijania zwiększający numer strony w księdze zaklęć na górę, i vice versa", + }, + invertAbacusScrollDirection: { + "": "Odwróć Przewijanie Liczydła", + "@Tooltip": "Zmienia kierunek przewijania zwiększający numer w liczydle na górę, i vice versa", + }, + gridSnapThreshold: { + "": "Próg Zahaczania w Splocie", + "@Tooltip": "Odległość, na którą musisz zbliżyć się myszką do następnego punktu w Splocie, by do niego automatycznie dociągnąć. 0.5 oznacza 50% odległości między punktami (0.5-1)", + }, + clickingTogglesDrawing: { + "": "Kliknięcie Przełącza Rysowanie", + "@Tooltip": "Kliknięcie rozpocznie i zakończy rysowanie symbolu, zamiast potrzeby przytrzymywania i przeciągania myszki", + }, + alwaysShowListCommas: { + "": "Zawsze Używaj Przecinków w Listach", + "@Tooltip": "Wszystkie joty w listach będą oddzielone przecinkami (domyślnie nie tyczy się to jot symboli)", + }, + advancedTooltipsShowsIotaNBT: { + "": "Zaawansowane Etykiety Pokazują Dane NBT o Jotach", + "@Tooltip": "Włączenie opcji zaawansowanych etykiet (F3+H) pokaże pełne dane NBT o jotach zapisanych w przedmiotach jak talizmany i księgi zaklęć", + }, + staticActiveSlates: { + "": "Statyczne Aktywne Płyty", + "@Tooltip": "Symbole na aktywnych płytach będą wyświetlone bez efektu trzęsienia się (poprawia wydajność przy większej ilości aktywnych płyt)", + }, + }, + server: { + opBreakHarvestLevel: { + "": "Siła Zaklęcia Zniszcz Blok", + "@Tooltip": "Decyduje, jakiemu poziomowi narzędzi odpowiada zaklęcie Zniszcz Block.\n0 = drewniane, 1 = kamienne, 2 = żelazne, 3 = diamentowe, 4 = netherytowe.", + }, + maxOpCount: { + "": "Maksymalna Ilość Działań", + "@Tooltip": "Maksymalna liczba działań, które można wykonać w jednym ticku, by uniknąć przeciążania serwera.", + }, + maxSpellCircleLength: { + "": "Maksymalna Długość Kręgu", + "@Tooltip": "Maksymalna liczba płyt, z których składa się krąg", + }, + actionDenyList: { + "": "Lista Zakazanych Działań", + "@Tooltip": "Lokalizacje zakazanych działań. Próba wykonania jednej z nich zakończy się zerwaniem. Na przykład, hexcasting:get_caster uniemożliwi Odbicie Umysłu.", + }, + circleActionDenyList: { + "": "Lista Działań Zabronionych dla Kręgów", + "@Tooltip": "Lokalizacje zakazanych działań wewnątrz kręgów. Próba wykonania jednej z nich przez krąg zakończy się zerwaniem. Na przykład, hexcasting:get_caster uniemożliwi Odbicie Umysłu.", + }, + globalCostScaling: { + "": "Globalny Mnożnik Kosztów", + "@Tooltip": "Wszystkie koszty przepływu, poza działaniami w tagu #hexcasting:cannot_modify_cost, będą pomnożone przez ten czynnik. Jeśli chcesz zmodyfikować koszt działania w tym tagu, użyj listy konkretnych działań.", + }, + costRescaleListRaw: { + "": "Mnożniki Kosztów Konkretnych Działań", + "@Tooltip": "Przypisuje lokalizacje działań do mnożnika dla kosztów przepływu tego konkretnego działania. Na przykład, hexcasting:add_motion 3 sprawi, że Impuls będzie kosztował trzykrotnie więcej.", + }, + greaterTeleportSplatsItems: { + "": "Rozrzucanie Przedmiotów przez Wyższą Teleportację", + "@Tooltip": "Decyduje, czy przedmioty wylatują z ekwipunku graczy po rzuceniu Wyższej Teleportacji", + }, + doesTrueNameHaveAmbit: { + "": "Czy Prawdziwe Imię Przyznaje Zasięg", + "@Tooltip": "Decyduje, czy Prawdziwe Imiona (tj. joty bytu odwołujące się do gracza) pozwalają na rzucanie zaklęć na tego gracza nawet poza typowym zasięgiem", + }, + tpDimDenylist: { + "": "Lista Wymiarów z Zakazem Teleportacji", + "@Tooltip": "Lokalizacje zasobów odwołujących się do wymiarów, w których chcesz zakazać teleportację", + }, + villagersOffendedByMindMurder: { + "": "Czy Osadników Oburza Mózgo-Mord", + "@Tooltip": "Decyduje, czy osadnicy złoszczą się na gracza obrzynającego umysły innych osadników", + }, + traderScrollChance: { + "": "Szansa na Zwoje u Wędrownego Handlarza", + "@Tooltip": "Szansa na to, że Starożytny Zwój pojawi się w ofercie danego wędrownego handlarza", + }, + scrollInjectionsRaw: { + "": "Ilości Wstawionych Zwojów", + "@Tooltip": "Przypisuje nazwy tabelek łupów do ilości Starożytnych Zwojów, jakie powinny się w nich znaleźć. Jest szansa mniej więcej 50% na pojawienie się zwojów w jednej z wymienionych tam skrzyń; gdy ta się spełni, wygeneruje się w niej od 1 do wpisanej tu ilości zwojów.", + }, + loreInjectionsRaw: { + "": "Miejsca Wstawiania Skrawków Wiedzy", + "@Tooltip": "Lista tabelek łupów, do których powinny zostać dodane skrawki wiedzy.", + }, + loreChance: { + "": "Szansa na Skrawki Wiedzy", + "@Tooltip": "Szansa na pojawienie się skrawków wiedzy w powyższych tabelkach łupów.", + }, + cypherInjectionsRaw: { + "": "Miejsca Wstawiania Starożytnych Cacek", + "@Tooltip": "Lista tabelek łupów, do których powinny zostać dodane starożytne cacka.", + }, + cypherChance: { + "": "Szansa na Starożytne Cacka", + "@Tooltip": "Szansa na pojawienie się starożytnych cacek w powyższych tabelkach łupów.", + }, + amethystShardModification: { + "": "Zmień Ilość Wydobytych Odłamków Ametystu", + "@Tooltip": "Ilość, o którą zostają zmniejszone, lub zwiększone zbiory odłamków ametystu z pojedynczego skupiska.", + }, + }, + }, + }, + hexcasting: { + loot_hex: { + shatter: "Rozbij", + kindle: "Zapłon", + illuminate: "Oświetl", + growth: "Wzrost", + lunge: "Wyskok", + sidestep: "Unik", + ascend: "Uniesienie", + blink: "Mignięcie", + blastoff: "Wystrzał", + radar: "Szósty Zmysł", + beckon: "Przyciągnięcie", + detonate: "Detonuj", + shockwave: "Fala Uderzeniowa", + heat_wave: "Ognista Aura", + wither_wave: "Fala Śmierci", + flight_zone: "Strefa Lotu", + }, + message: { + cant_overcast: "Wygląda na to, że ten czar wymagał więcej przepływu niż mi się wydawało... Muszę poprawić obliczenia.", + cant_great_spell: "Z jakiegoś powodu, to zaklęcie nie zadziałało... Czy brakuje mi doświadczenia?", + }, + tooltip: { + spellbook: { + page: { + "": "Wybrana Strona: %d/%d", + sealed: "Wybrana Strona: %d/%d (%s)", + }, + page_with_name: { + "": "Wybrana Strona: %d/%d (\"%s\")", + sealed: "Wybrana Strona: %d/%d (\"%s\") (%s)", + }, + empty: { + "": "Pusta", + sealed: "Pusta (%s)", + }, + sealed: "Zapieczętowana", + }, + scroll: { + needs_purchase: "Kup zwój, aby zobaczyć symbol", + pattern_not_loaded: "Włóż do ekwipunku, aby zobaczyć symbol", + "recalc_warning.line1": "Unikatowy symbol %s dla tego świata nie został jeszcze obliczony!", + "recalc_warning.line2": "Użyj komendy /hexcasting recalcPatterns, a następnie zdobądź nowy zwój.", + }, + abacus: { + "": "%d", + reset: "Zresetowano do 0", + "reset.nice": "hehe", + }, + circle: { + no_exit: "Fala przepływu nie znalazła dalszej drogi na %s", + many_exits: "Fala przepływu znalazła za dużo możliwych dróg na %s", + no_closure: "Fala przepływu nie będzie w stanie wrócić do rdzenia na %s", + }, + lens: { + "pattern.invalid": "Niepoprawny symbol", + bee: { + "": "Liczba pszczół w ulu: %s", + single: "Ilość pszczół w ulu: %s", + }, + "impetus.redstone.bound": { + "": "Związany z %s", + none: "Niezwiązany", + }, + akashic: { + "bookshelf.location": "Kronika na %s", + "record.count": { + "": "Zapisane joty: %s", + single: "Zapisane joty: %s", + }, + }, + }, + brainsweep: { + min_level: "Poziom %s, lub wyższy", + level: "Poziom %s", + product: "Sformatowane ciało", + }, + media: "%d jednostek pyłu", + media_amount: "Zawiera: %s (%s)", + "media_amount.advanced": "Zawiera: %s/%s (%s)", + stored_hex: "Czar: ", + list_contents: "[%s]", + boolean_true: "Prawda", + boolean_false: "Fałsz", + jump_iota: "[Skok]", + pattern_iota: "Symbol(%s)", + null_iota: "Null", + }, + spelldata: { + unknown: "Splątana jota", + "entity.whoknows": "Nieznany byt", + "akashic.nopos": "Nadrzędna kronika nie zna żadnej joty pod tym adresem (to jest błąd w modzie)", + onitem: "Zawiera: %d", + anything: "Cokolwiek", + }, + subtitles: { + casting: { + pattern: { + start: "Początek tkania", + add_segment: "Naciągnięcie nici", + }, + cast: { + normal: "Symbol szumi", + fail: "Zerwanie trzeszczy", + spell: "Zaklęcie skrzypi", + hermes: "Gambit Hermesa brzdęka", + thoth: "Gambit Tota brzdęka", + }, + }, + ambiance: "Splot buczy", + abacus: { + "": "Liczydło klika", + shake: "Liczydło grzechocze", + }, + "scroll.scribble": "Zwój jest zapisany", + "impetus.fletcher.tick": "Łuczarski Rdzeń tyka", + "impetus.redstone.register": "Kapłański Rdzeń dzwoni", + "impetus.redstone.clear": "Kapłański Rdzeń usypia", + "lore_fragment.read": "Przeczytano skrawek wiedzy", + "flight.ambience": "Gracz leci", + "flight.finish": "Lot się kończy", + "staff.reset": "Czar zostaje rozpruty", + "spellcircle.add_pattern": "Krąg trzeszczy", + "spellcircle.fail": "Krąg wygasa", + "scroll.dust": "Zwój zostaje pokryty pyłem", + }, + "pattern.unknown": "Nieznana lokalizacja zasobu symbolu", + debug: { + media_withdrawn: "%s - Wydano przepływ: %s", + "media_withdrawn.with_dust": "%s - Wydano przepływ: %s (%s jednostek pyłu)", + media_inserted: "%s - Przepływ wstawiony: %s", + "media_inserted.with_dust": "%s - Przepływ wstawiony: %s (%s w jednostkach pyłu", + all_media: "Pełna zawartość", + infinite_media: "Nieskończony", + }, + attributes: { + grid_zoom: "Rozmiar Splotu", + media_consumption: "Zużycie Przepływu", + ambit_radius: "Promień Zasięgu Gracza", + sentinel_radius: "Promień Zasięgu Wartownika", + scry_sight: "Soczewkowa Wizja", + feeble_mind: "Ograniczony Umysł", + }, + }, + "advancement.hexcasting:": { + root: { + "": "Badania nad Splotem", + desc: "Odnajdź i wydobądź skupioną formę przepływu, rosnącą głęboko pod powierzchnią ziemi.", + }, + creative_unlocker: { + desc: "No i masz swój kreatywny przedmiot do debugowania.", + "": "Jestem hardkorem!", + }, + enlightenment: { + "": "Wtajemniczenie", + desc: "Roztrzaskaj granicę poprzez rzucenie czaru zużywając prawie całe swoje życie.", + }, + wasteful_cast: { + "": "Nie marnuj...", + desc: "Zmarnuj wielką ilość przepływu rzucając czar.", + }, + big_cast: { + "": "...I nie pragnij", + desc: "Rzuć pojedynczy czar wymagający przeogromnej ilości przepływu.", + }, + y_u_no_cast_angy: { + "": "Strzał na ślepo", + desc: "Spróbuj rzucić zaklęcie ze zwoju, lecz zawiedź.", + }, + opened_eyes: { + "": "Rozwarte oczy", + desc: "Pozwól naturze odebrać fragment twojego umysłu, jako zapłatę za czar. Co może się stać, jeśli dasz jej więcej?", + }, + lore: { + "": "Wiedza sprzed lat", + desc: "Przeczytaj Skrawek Wiedzy", + }, + "lore/": { + cardamom1: { + "": "Kardamoma Steles #1", + desc: "List od Kardamomy Steles do jej ojca, #1", + }, + cardamom2: { + "": "Kardamoma Steles #2", + desc: "List od Kardamomy Steles do jej ojca, #2", + }, + cardamom3: { + "": "Kardamoma Steles #3", + desc: "List od Kardamomy Steles do jej ojca, #3, 1/2", + }, + cardamom4: { + "": "Kardamoma Steles #3 cz2", + desc: "List od Kardamomy Steles do jej ojca, #3, 2/2", + }, + cardamom5: { + "": "Kardamoma Steles #4", + desc: "List od Kardamomy Steles do jej ojca, #4", + }, + inventory: "Dziennik Renowacji 72", + experiment1: "Raport Projektu Spętane Oczy", + experiment2: "Przesłuchania Spętanych Oczu", + }, + }, + "stat.hexcasting": { + media_used: "Użyty Przepływ (w jednostkach pyłu)", + patterns_drawn: "Narysowane Symbole", + spells_cast: "Rzucone Zaklęcia", + media_overcast: "Nadczarowany Przepływ (w jednostkach pyłu)", + }, + "death.attack.hexcasting": { + overcast: { + "": "Umysł %s rozwiał się w pył", + player: "Umysł %s rozwiał się w pył walcząc %s", + }, + }, + "command.hexcasting": { + recalc: "Przeliczono symbole", + pats: { + listing: "Symbole w tym świecie:", + all: "Dano wszystkie zwoje %d graczowi %s", + "specific.success": "Dano %s o id %s graczowi %s", + }, + brainsweep: { + "": "Przekartkowano mózg %s", + "fail.badtype": "%s nie jest mobem", + "fail.already": "Umysł %s już jest pusty", + }, + }, + "matcher.hexcasting.pattern": { + title: "Symbol", + "title.styled": "Symbol ", + description: "Wizualne Symbole", + example: "", }, } diff --git a/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 b/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 index 0967ef424b..bf6c956e55 100644 --- a/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/pl_pl.flatten.json5 @@ -1 +1,24 @@ -{} +{ + hexdoc: { + hexcasting: { + title: "Heksonomikon", + }, + pattern: { + show: "Kliknij, aby pokazać zaklęcie", + hide: "Kliknij, aby ukryć zaklęcie", + multiplier: "${speedScale()}x", + }, + villager_requirements: { + professional: "Osadnik musi być {level} {profession}, lub wyżej", + any: "Osadnik musi być {level}, lub wyżej", + }, + }, + "block.hexcasting": { + slate: "Gładka płyta", + }, + "tag.item.c": { + brown_dye: "Brązowe Barwniki", + glowstone_dusts: "Jasnopył", + wood_sticks: "Drewniane Patyki", + }, +} From e08cdb8a8b1da9a5552932c520871b9c585a902f Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 35/50] 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 --- .../hexcasting/lang/zh_cn.flatten.json5 | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) 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 5f9e156671..3fb206c388 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 @@ -1215,7 +1215,7 @@ "3": "而在欣赏这些水晶的美时,我能感受到某种连接迅速闪过我的意识。就好像空气中的$(media)媒质/$正在流入我的脑海,正给予我更强的力量,正为我启迪全新知识……这种感觉真不错。$(br2)我总算是入门了!$(p)我要再读几遍那些古老的传说,我总算能理解我在读什么了。", }, couldnt_cast: { - "1": "为什么我就是施不了这个法术?!$(br2)我找到的卷轴货真价实。我能$(italic)感受/$到卷轴的嗡鸣——图案是真的,真的不能再真了。法术$(italic)就在里面/$。$(p)但感觉起来它好像处在某种薄膜的另一侧。我试过召唤它——它也想要起效——但它$(italic)做不到/$。", + "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)我想要拥有那份力量,是否就大错特错?", @@ -1274,10 +1274,10 @@ "4": "已知某个方块的位置,若要指向它上方的方块,就需要向 Y 分量加 1:可以创建值为 (0, 1, 0) 的第二个向量与原有向量求和。类似地,若要指向它东边两格处,可使用值为 (2, 0, 0) 的向量。例中用到的两个向量都代表着从原有位置指向新位置的$(o)偏移量/$。", "5": "注意,虽然位置向量和偏移向量含义不同,但它们在本质上没有区别——都只是三个数组成的集合。只要我想,所有向量都可以看作一类:位置不过是从世界原点指向对应位置的偏移,偏移也不过是相对于其他原点的位置。", "6": "向量有两个重要属性,分别是$(o)模长/$(长度)和$(o)方向/$;把向量看作偏移可能会方便想象。$(br2)选取一个原点,再按照偏移向量直线移动,走过的距离即是向量的长度,走的方向则是向量的方向。", - "7": "向量有许多操作方法。如前例所说,向量可求和,即分别求 X、Y、Z 分量的和。减法也是一样——恰巧,两个位置向量的差正是减向量指向被减向量的偏移。$(br2)向量的乘除则不甚容易;有关这两种运算的介绍可参见$(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)这里/$和$(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)这里/$。", + "7": "向量有许多操作方法。如前例所说,向量可求和,即对 X、Y、Z 分量分别求和。减法也是一样——恰巧,两个位置向量的差正是减向量指向被减向量的偏移。$(br2)向量的乘除则不甚容易;有关这两种运算的介绍可参见$(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)这里/$和$(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)这里/$。", "8": "以数乘或除向量可进行$(o)缩放/$,即同时让三个分量乘以或除以该数。$(br2)只要所用的数是正数,乘除便只会影响长度,不影响方向。若用的是负数,那么长度会和用正数时一样增减,且同时会反转向量的方向。", - "9": "让向量除以其长度会得到单位向量——方向不变,但长度恰变为 1。在只看重向量的方向时,单位向量就很合适。单位向量数乘后,所得向量的长度即恰为所用的数,这一性质也很有用。$(br2)许多会计算方向的图案,比如$(l:patterns/basics#hexcasting:get_entity_look)照准仪之纯化/$,即会返回单位向量。", - "10": "到目前为止提及的所有运算,以及还未提及的那些,都可通过$(l:patterns/math)数学/$章节中的图案实现。$(br2)我可以通过$(l:patterns/basics)基础图案/$将实体的信息获取为新向量,可以使用$(l:patterns/consts)常量/$来创建正方向的单位向量,也可通过$(l:patterns/math#hexcasting:construct_vec)向量之提整/$将三个数组合为向量。", + "9": "让向量除以其长度会得到单位向量——方向不变,但长度恰变为 1。在只看重向量的方向时,单位向量就很合适。单位向量数乘后,所得向量的长度恰为所用的数,这一性质也很有用。$(br2)许多会计算方向的图案,比如$(l:patterns/basics#hexcasting:get_entity_look)照准仪之纯化/$,返回的就是单位向量。", + "10": "到目前为止提及的所有运算,以及还未提及的那些,都可通过$(l:patterns/math)数学/$章节中的图案实现。$(br2)我可以通过$(l:patterns/basics)基础图案/$将实体的信息获取为新向量,可以使用$(l:patterns/consts)常量/$来创建坐标轴向的单位向量,也可通过$(l:patterns/math#hexcasting:construct_vec)向量之提整/$将三个数组合为向量。", "11": "对于与向量有关的那些更为高深的概念,我可能会在这本笔记之外再进行些拓展研究。下方的视频则是不错的参考资料。", }, mishaps: { @@ -1316,9 +1316,9 @@ other: "模组中的漏洞产生的无效类型的 iota 或是其他错误导致法术失效。$(l:https://github.com/gamma-delta/HexMod/issues)请报告该漏洞!/$$(br2)产生黑色火花。", }, stack: { - "1": "$(thing)栈/$,又被称为“后进先出表(LIFO)”,是计算机科学中的概念。简而言之,栈是一种只能与最近交互过的事物交互的事物的集合。$(br2)想象一摞盘子,新盘子会被放在其顶部。若想要与放在这摞盘子中间的某个盘子交互,你就必须先将它上面的所有盘子拿开才行。", - "2": "因为栈非常简单,所以可用的交互种类屈指可数:$(li)$(italic)向其中加入事物/$,称为“入栈”/“push”。$(li)$(italic)移除最后加入的元素/$,称为“出栈”/“pop”。$(li)$(italic)校验或修改最后加入的元素/$,称为“检视”/“peek”。$(br)我们将最后加入的元素称为“栈顶元素”,就和盘子的类比差不多。$(p)举个例子,如果向栈压入 1 号元素,然后压入 2 号元素,然后弹出一个元素,这时栈顶元素便是 1 号元素。", - "3": "操作(大致)都只能与栈以如上几种方式交互。它们会弹出部分它们所期望的 iota(称为“参数”或“实参”或“形参”),对它们进行处理,然后压入一定数目的结果。$(br2)当然,某些操作(例如$(l:patterns/basics#hexcasting:get_caster)$(action)意识之精思/$)可能不会弹出任何元素,而某些操作(尤其是法术)可能不会压入任何元素。", + "1": "$(thing)栈/$,又被称为“后进先出表(LIFO)”,是计算机科学中的概念。简而言之,栈是一种只能与最近交互过的事物交互的事物集合。$(br2)想象一摞盘子,新盘子会被放在其顶部。若想要与放在这摞盘子中间的某个盘子交互,你就必须先将它上面的所有盘子拿开才行。", + "2": "因为栈非常简单,所以可用的交互种类屈指可数:$(li)$(italic)向其中加入事物/$,称为“入栈”“压栈”/“push”。$(li)$(italic)移除最后加入的元素/$,称为“出栈”“弹栈”/“pop”。$(li)$(italic)校验或修改最后加入的元素/$,称为“检视”/“peek”。$(br)我们将最后加入的元素称为“栈顶元素”,就和盘子的类比差不多。$(p)举个例子,如果向栈压入 1 号元素,然后压入 2 号元素,然后弹出一个元素,这时栈顶元素便是 1 号元素。", + "3": "操作(大致)都只能与栈以如上几种方式交互。它们会弹出部分它们所期望的 iota(称为“参数”),对它们进行处理,然后压入一定数目的结果。$(br2)当然,某些操作(例如$(l:patterns/basics#hexcasting:get_caster)$(action)意识之精思/$)可能不会弹出任何元素,而某些操作(尤其是法术)可能不会压入任何元素。", "4": "更复杂的操作都可用若干次入栈、出栈或检视操作实现。例如,$(l:patterns/stackmanip#hexcasting:swap)$(action)弄臣之策略/$交换栈顶两个元素的顺序。这可认为是弹出两个 iota 并以相反顺序重新压入。又例如,$(l:patterns/stackmanip#hexcasting:duplicate)$(action)双子之分解/$会复制栈顶元素,也即其检视栈顶并压入一个一样的元素。", }, naming: { @@ -1673,7 +1673,7 @@ "1": "绘制$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$会让这之后绘制的图案不再与操作联系。而在绘制$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$后,之前绘制的图案就会作为一个列表加到栈中。", "2": "如果绘制内省后再绘制一个$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)内省/$,则它也将被加到列表中,而且需绘制$(italic)两次/$$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$才能回到正常施法模式。", }, - undo: "最后,若在$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$之间有图案绘制错误,则可绘制$(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)消解/$以移除图案列表中的最后绘制的图案。", + undo: "最后,若在$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)内省/$和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$之间有图案绘制错误,可绘制$(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)消解/$以移除图案列表中的最后绘制的图案。", further_notes: { title: "更多笔记", "1": "由于$(l:patterns/patterns_as_iotas#hexcasting: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:escape)$(action)考察/$本身,就应绘制两遍。第一个$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)考察/$会转义第二个,绕过它的特殊功能。$(br2)$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)深思/$则不同,无论嵌套深度如何都只需要绘制一遍。", @@ -1682,7 +1682,7 @@ }, runtime_escape: { "1": "要使用$(l:patterns/patterns_as_iotas#hexcasting:runtime_escape)$(action)深思/$,先绘制它,然后绘制任意图案。第二个图案就会被加到栈中。", - "2": "如果对计算机科学有足够了解的话,你可能能将其与“转义”/“escape”操作联系起来。$(br2)考察的一大用途是将某一图案复制到$(l:items/scroll)$(item)卷轴/$或$(l:items/slate)$(item)石板/$上,且要和$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略/$配合使用。这之后卷轴和石板就能拿来装饰了。", + "2": "如果对计算机科学有足够了解的话,你可能能将其与“转义”/“escape”操作联系起来。$(br2)此图案的一大用途是将某一图案复制到$(l:items/scroll)$(item)卷轴/$或$(l:items/slate)$(item)石板/$上,且要和$(l:patterns/readwrite#hexcasting:write)$(action)书吏之策略/$配合使用。这之后卷轴和石板就能拿来装饰了。", }, escape: "和$(l:patterns/patterns_as_iotas#hexcasting:runtime_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:open_paren)$(action)内省/$和$(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)反思/$之间的其他图案,将这些图案压栈,而不产生任何其他效果。", }, @@ -1805,7 +1805,7 @@ }, "teleport/great": { "1": "此法术比$(l:patterns/spells/basic#hexcasting:blink)$(action)闪现/$更加强大,能将实体传送到世界上几乎任何一处!没有距离限制,它似乎需要消耗大约 10 个$(l:items/amethyst)$(item)充能紫水晶/$。", - "2": "所给向量代表偏差值,而非世界中的绝对位置;比如,使用 (1, 0, 0) 时,目标实体会被传送到原有位置恰好 1 格以东处。$(br2)当然这种传送也不是尽善尽美的,在传送我自己时,我便难以保持十足的专注。这可能会导致我身上的部分物品散落在目的地周围。$(br2)还有,传送的实体将会被强制从其所乘坐的无生命载具中卸下……但我曾读到过动物可以一起被传送,大概吧。", + "2": "所给向量代表偏移量,而非世界中的绝对位置;比如,使用 (1, 0, 0) 时,目标实体会被传送到原有位置恰好 1 格以东处。$(br2)当然这种传送也不是尽善尽美的,在传送我自己时,我便难以保持十足的专注。这可能会导致我身上的部分物品散落在目的地周围。$(br2)还有,传送的实体将会被强制从其所乘坐的无生命载具中卸下……但我曾读到过动物可以一起被传送,大概吧。", }, zeniths: { "1": "此类法术会给予某一实体一个正面药水效果,与$(l:patterns/spells/nadirs)$(action)天底法术/$类似。然而,它们的$(media)媒质/$消耗会按效果强度的$(italic)立方/$计算。", From 1e79b8b8e7fc1638b75e244fdcabbe084f2bc48f Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 36/50] chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update translation files chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation chore(l10n): update Spanish translation Add-on: Remove blank strings Co-authored-by: Chichi16 Co-authored-by: ElNico56 Co-authored-by: Hexxy Weblate Language: Spanish Progress: 57.7% (800 of 1386 strings) Progress: 58.7% (814 of 1386 strings) Progress: 58.8% (815 of 1386 strings) Progress: 59.3% (822 of 1386 strings) Progress: 91.3% (21 of 23 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/es/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/es/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/es_es.flatten.json5 | 281 +++++++++--------- .../hexcasting/lang/es_es.flatten.json5 | 1 + 2 files changed, 148 insertions(+), 134 deletions(-) diff --git a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 index 60d0e8855d..a698965626 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -2,19 +2,19 @@ "item.hexcasting": { staff: { oak: "Bastón de roble", - spruce: "Bastón de pino", - birch: "Bastón de abeduel", + spruce: "Bastón de abeto", + birch: "Bastón de abedul", jungle: "Bastón de jungla", acacia: "Bastón de acacia", dark_oak: "Basótn de roble oscuro", - crimson: "Bastón carmes", + crimson: "Bastón carmesí", warped: "Bastón distorsionado", mangrove: "Bastón de mangle", cherry: "Bastón de cerezo", bamboo: "Bastón de bambú", edified: "Bastón edificado", quenched: "Basón de fragmento templado", - mindsplice: "Bastón de empalme mental", + mindsplice: "Bastón expandementes", }, amethyst_dust: "Polvo de amatista", charged_amethyst: "Amatista cargada", @@ -30,13 +30,13 @@ empty: "Pergamino mediano vacio", }, scroll: { - "": "Pergamino largo", + "": "Pergamino grande", of: "Pergamino antiguo de %s", - empty: "Pergamino largo vacio", + empty: "Pergamino grande vacio", }, focus: { - "": "Centro", - sealed: "Centro sellado", + "": "Foco", + sealed: "Foco sellado", }, ancient_cypher: { "": "Cifra antigua", @@ -47,22 +47,22 @@ cypher: "Cifra", trinket: "Baratija", artifact: "Artefacto", - battery: "Frasco de Media", + battery: "Frasco de Medio", lens: "Lente de adivinación", abacus: "Ábaco", jeweler_hammer: "Martillo de joyero", - sub_sandwich: "Sándwich de suma", + sub_sandwich: "Sándwich submarino", dye_colorizer_: { white: "Pigmento blanco", orange: "Pigmento naranja", magenta: "Pigmento magenta", - light_blue: "Pigmento azul cielo", + light_blue: "Pigmento azul claro", yellow: "Pigmento amarillo", - lime: "Pigmento verde limón", + lime: "Pigmento verde lima", pink: "Pigmento rosa", gray: "Pigmento gris", light_gray: "Pigmento gris claro", - cyan: "Pigmento turquesa", + cyan: "Pigmento cian", purple: "Pigmento morado", blue: "Pigment azul", brown: "Pigmento marrón", @@ -73,7 +73,7 @@ pride_colorizer_: { agender: "Pigmento agénero", aroace: "Pigmento arroace", - aromantic: "Pigmento aromático", + aromantic: "Pigmento arromántico", asexual: "Pigmento asexual", bisexual: "Pigmento bisexual", demiboy: "Pigmento semichico", @@ -81,8 +81,8 @@ gay: "Pigmento gay", genderfluid: "Pigmento de género fluido", genderqueer: "Pigmento de género queer", - intersex: "Pigmento intersexual", - lesbian: "Pigmento lesbian", + intersex: "Pigmento intersex", + lesbian: "Pigmento lesbiano", nonbinary: "Pigmento no binario", pansexual: "Pigmento pansexual", plural: "Pigmento plural", @@ -92,8 +92,8 @@ default_colorizer: "Pigmento vacante", ancient_colorizer: "Pigmento antiguo", creative_unlocker: { - "": "El cubo de medio", - for_emphasis: "MEDIO INFINITA", + "": "El Cubo de Medio", + for_emphasis: "MEDIO INFINITO", tooltip: "Consuma para descrubir todo conocimientos de %s.", mod_name: "Hexcasting", }, @@ -101,28 +101,29 @@ "": "Fragmento de relato", all: "Parace que ya encontre todos los relatos que este mundo tiene que ofrecer.", }, + book: "Cuardeno hex", }, "entity.hexcasting": { wall_scroll: "Pergamino colgante", }, "block.hexcasting": { conjured_light: "Luz conjurada", - conjured_block: "Bloque conjurada", + conjured_block: "Bloque conjurado", directrix: { - empty: "Directora vacia", - redstone: "Directora de albañil", - boolean: "Directora de pastor", + empty: "Directriz vacia", + redstone: "Directriz de albañil", + boolean: "Directriz de pastor", }, impetus: { - empty: "Impetuoso vacio", - rightclick: "Impetuoso de herrero", - look: "Impetuoso de flechero", - redstone: "Impetuoso de sacerdote", + empty: "Ímpetu vacio", + rightclick: "Ímpetu de herrero", + look: "Ímpetu de flechero", + redstone: "Ímpetu de clérigo", }, akashic_: { record: "Registro akáshico", - bookshelf: "Estantería akáshico", - connector: "Ligadura akáshico", + bookshelf: "Estantería akáshica", + connector: "Ligadura akáshica", }, slate: { "": "Pizarra", @@ -161,17 +162,17 @@ log_citrine: "Tronco edificado citrino", log_purple: "Tronco edificado morado", wood: "Leño edificado", - planks: "Madera edificada", + planks: "Tablones edificados", panel: "Panel edificado", - tile: "Baldosas edificadas", + tile: "Baldosa edificada", door: "Puerta edificada", - trapdoor: "Escotilla edificada", + trapdoor: "Trampilla edificada", stairs: "Escaleras edificadas", slab: "Losa edificada", button: "Botón edificado", pressure_plate: "Placa de presión edificada", - fence: "Cerca edificada", - fence_gate: "Puerta de cerca edificada", + fence: "Valla edificada", + fence_gate: "Puerta de valla edificada", }, stripped_edified_log: "Tronco edificado sin corteza", stripped_edified_wood: "Leño edificado sin corteza", @@ -187,59 +188,59 @@ }, "effect.hexcasting": { enlarge_grid: "Claridad", - shrink_grid: "Nubladidad", + shrink_grid: "Nubosidad", }, "item.minecraft.potion.effect": { - enlarge_grid: "Poción de claridad", - enlarge_grid_long: "Poción de claridad", - enlarge_grid_strong: "Poción de claridad", - shrink_grid: "Poción de Nubladidad", - shrink_grid_long: "Poción de Nubladidad", - shrink_grid_strong: "Poción de Nubladidad", + enlarge_grid: "Poción de Claridad", + enlarge_grid_long: "Poción de Claridad", + enlarge_grid_strong: "Poción de Claridad", + shrink_grid: "Poción de Nubosidad", + shrink_grid_long: "Poción de Nubosidad", + shrink_grid_strong: "Poción de Nubosidad", }, "item.minecraft.splash_potion.effect": { - enlarge_grid: "Poción de claridad arrojadiza", - enlarge_grid_long: "Poción de claridad arrojadiza", - enlarge_grid_strong: "Poción de claridad arrojadiza", - shrink_grid: "Poción de Nubladidad arrojadiza", - shrink_grid_long: "Poción de Nubladidad arrojadiza", - shrink_grid_strong: "Poción de Nubladidad arrojadiza", + enlarge_grid: "Poción de Claridad arrojadiza", + enlarge_grid_long: "Poción de Claridad arrojadiza", + enlarge_grid_strong: "Poción de Claridad arrojadiza", + shrink_grid: "Poción de Nubosidad arrojadiza", + shrink_grid_long: "Poción de Nubosidad arrojadiza", + shrink_grid_strong: "Poción de Nubosidad arrojadiza", }, "item.minecraft.lingering_potion.effect": { - enlarge_grid: "Poción de claridad persistente", - enlarge_grid_long: "Poción de claridad persistente", - enlarge_grid_strong: "Poción de claridad persistente", - shrink_grid: "Poción de Nubladidad persistente", - shrink_grid_long: "Poción de Nubladidad persistente", - shrink_grid_strong: "Poción de Nubladidad persistente", + enlarge_grid: "Poción de Claridad persistente", + enlarge_grid_long: "Poción de Claridad persistente", + enlarge_grid_strong: "Poción de Claridad persistente", + shrink_grid: "Poción de Nubosidad persistente", + shrink_grid_long: "Poción de Nubosidad persistente", + shrink_grid_strong: "Poción de Nubosidad persistente", }, "item.minecraft.tipped_arrow.effect": { - enlarge_grid: "Flecha de claridad", - enlarge_grid_long: "Flecha de claridad", - enlarge_grid_strong: "Flecha de claridad", - shrink_grid: "Flecha de Nubladidad", - shrink_grid_long: "Flecha de Nubladidad", - shrink_grid_strong: "Flecha de Nubladidad", + enlarge_grid: "Flecha de Claridad", + enlarge_grid_long: "Flecha de Claridad", + enlarge_grid_strong: "Flecha de Claridad", + shrink_grid: "Flecha de Nubosidad", + shrink_grid_long: "Flecha de Nubosidad", + shrink_grid_strong: "Flecha de Nubosidad", }, "tag.hexcasting": { - staves: "Bastónes hex", + staves: "Bastónes Hex", edified_logs: "Troncos edificados", - edified_planks: "Maderas edificadas", - phial_base: "Frasco vacio", + edified_planks: "Tablones edificados", + phial_base: "Frascos vacios", }, "tag.item.hexcasting": { brainswept_circle_components: "Componentes de circulo de cerebrobarrido", directrices: "Directoras", grants_root_advancement: "Concida progreso origen", - impeti: "Impetuosos", + impeti: "Ímpetuses", seal_materials: "Materiales de sello", }, "emi.category.hexcasting": { - brainsweep: "Desollar mente", - "craft.battery": "Craftear frasco", - edify: "Edificar arbolito", + brainsweep: "Decerebrar", + "craft.battery": "Fabricar Frasco de medio", + edify: "Edificar Arbolito", villager_leveling: "Comercio nivelando", - villager_profession: "Profesión de aldeano", + villager_profession: "Profesión de Aldeano", }, "text.autoconfig.hexcasting": { title: "Hexcasting Config", @@ -251,32 +252,32 @@ option: { common: { dustMediaAmount: { - "": "Cantidad de medio polvo", - "@Tooltip": "Cuanta medio un polvo de amatista vale", + "": "Cantidad de medio en polvo", + "@Tooltip": "Cuanto medio un polvo de amatista vale", }, shardMediaAmount: { - "": "Cantidad de medio fragmento", - "@Tooltip": "Cuanta medio un fragmento de amatista vale", + "": "Cantidad de medio en fragmento", + "@Tooltip": "Cuanto medio un fragmento de amatista vale", }, chargedCrystalMediaAmount: { - "": "Cantidad de medio crystal cargado", - "@Tooltip": "Cuanta medio un fragmento de amatista crystal vale", + "": "Cantidad de medio en cristal cargado", + "@Tooltip": "Cuanto medio una amatista cargada vale", }, mediaToHealthRate: { - "": "Media a Salud tasa", - "@Tooltip": "Cuantos puntos de medio un mitad de corazon vale cuando lanzar desde PV", + "": "Tasa de medio a salud", + "@Tooltip": "Cuantos puntos de medio un mitad de corazon vale cuando lanzando de PV", }, cypherCooldown: { "": "Tiempo de reutilización de las cifra", - "@Tooltip": "Reutilización de una cifra en ticks", + "@Tooltip": "Tiempo de reutilización de una cifra en tics", }, trinketCooldown: { - "": "Reutilización de baratija", - "@Tooltip": "Reutilización de una baratija en ticks", + "": "Tiempo de reutilización de baratija", + "@Tooltip": "Tiempo de reutilización de una baratija en tics", }, artifactCooldown: { - "": "Reutilización de artefacto", - "@Tooltip": "Reutilización de un artefacto en ticks", + "": "Tiempo de reutilización de artefacto", + "@Tooltip": "Tiempo de reutilización de un artefacto en tics", }, }, client: { @@ -285,46 +286,46 @@ "@Tooltip": "Si la tecla de control *apaga* el gradiente de color sobre patrones", }, invertSpellbookScrollDirection: { - "": "Invetir libro de hechizos desplazar dirección", + "": "Invetir dirección de desplazamiento del libro de hechizos", "@Tooltip": "Si desplazarse hacia arriba (en lugar de hacia abajo) aumentará el índice de página del libro de hechizos, y viceversa", }, invertAbacusScrollDirection: { - "": "Invetir ábaco desplazar dirección", - "@Tooltip": "Si desplazarse hacia arriba (en lugar de hacia abajo) aumentará el índice de página del ábaco, y viceversa", + "": "Invetir dirección de desplazamiento del ábaco", + "@Tooltip": "Si desplazarse hacia arriba (en lugar de hacia abajo) aumentará el valor del ábaco, y viceversa", }, gridSnapThreshold: { "": "Limite de adhirir a la cuadricula", - "@Tooltip": "Cuando usando un bastón, la distancia que debes que ir para que un punto pasa al siguiente punto, donde 0.5 significa 50$ del camino (0.5-1)", + "@Tooltip": "Al usar un bastón, la distancia que debes que ir para conectar de un punto al siguiente, donde 0.5 significa 50% del camino (0.5-1)", }, clickingTogglesDrawing: { - "": "Clic alterna dibujando", - "@Tooltip": "Si haces click para empezar y para dibujando enves de hacer click y arrastar para dibujar", + "": "Clic alterna trazar", + "@Tooltip": "Si haces click para empezar y parar de trazar en vez de hacer click y arrastar para trazar", }, disableInworldScrolling: { "": "Desactivar desplazamiento en-mundo", "@Tooltip": "Desactivar usar desplazamiento para los libros de hechizos y los ábacos en el mundo normal, manteniendo el funcionamiento para los atajos de teclado y el desplazamiento en la pantalla del bastón", }, alwaysShowListCommas: { - "": "Mostrar siempre las comas de la lista", - "@Tooltip": "Si se separarán todos los tipos de iotas con comas dentro de las listas (Por normal, las iotas de patrones no usan comas)", + "": "Mostrar siempre las comas en listas", + "@Tooltip": "Si se separarán todos los tipos de iotas con comas dentro de las listas (Por defecto, las iotas de patrones no usan comas)", }, advancedTooltipsShowsIotaNBT: { "": "Descripción avanaza de ítems muestra NBT de Iota", - "@Tooltip": "Si activando descripción avanaza de ítems (F3+H) debería mostrar el entero NBT de iotas guardado en ítems como centros y libros de hechizos", + "@Tooltip": "Si activar la descripción avanaza de ítems (F3+H) debería mostrar el entero NBT de iotas guardado en ítems como centros y libros de hechizos", }, staticActiveSlates: { - "": "Pizarras estáticas activadas", + "": "Pizarras activadas estáticas", "@Tooltip": "Si los patrones en las pizarras activas deben renderizarse sin oscilaciones. (mejora el rendimiento con una gran cantidad de slates activos)", }, }, server: { opBreakHarvestLevel: { - "": "Nivel de cosecha de romper", - "@Tooltip": "El nivel de cosechar del hechizo Romper Bloque.\n0 = madera, 1 = piedra, 2 = hierro, 3 = diamante, 4 = netherita.", + "": "Nivel de herramienta para bloques", + "@Tooltip": "El nivel de herramienta del hechizo Romper Bloque.\n0 = madera, 1 = piedra, 2 = hierro, 3 = diamante, 4 = netherita.", }, maxOpCount: { "": "Maxima cuenta de acciónes", - "@Tooltip": "El numero maximo de acciónes que puede se ejecutar en un tic, para evitar colgar el servidor.", + "@Tooltip": "El numero maximo de acciónes que se puede ejecutar en un tic, para evitar colgar el servidor.", }, maxSpellCircleLength: { "": "Maxima longitud de círculo de hechizos", @@ -340,7 +341,7 @@ }, villagersOffendedByMindMurder: { "": "Aldeanos ofendidos por asesinato mental", - "@Tooltip": "Si los aldeanos deberían enojarse con el jugador cuando otros aldeanos están desomente", + "@Tooltip": "Si los aldeanos deberían enojarse con el jugador cuando otros aldeanos son decerebrados", }, scrollInjectionsRaw: { "": "Pesos para la inyección de pergaminos", @@ -356,10 +357,10 @@ }, costRescaleListRaw: { "": "Factores de escala de costes por acción", - "@Tooltip": "Asocia las ubicaciones de los recursos con el factor de escala para el costo de medio a esa acción específica. Por ejemplo, hexcasting:add_motion hará que impulso cueste el triple.", + "@Tooltip": "Asocia las ubicaciones de los recursos con el factor de escala para el costo de medio a esa acción específica. Por ejemplo, hexcasting:add_motion 3 hará que impulso cueste el triple.", }, greaterTeleportSplatsItems: { - "": "Teletransporte Mayor dispersar ítems", + "": "Teletransporte Mayor dispersa ítems", "@Tooltip": "Si ítems deberían dispersar del inventario del jugador al usar Teletransporte Mayor", }, doesTrueNameHaveAmbit: { @@ -372,7 +373,7 @@ }, traderScrollChance: { "": "Probabilidad de pergamino del Vendedor ambulante", - "@Tooltip": "La probabilidad de que los Vendedores ambulante vendan un Pergamino Antiguo", + "@Tooltip": "La probabilidad de que los Vendedores ambulantes vendan un Pergamino Antiguo", }, loreInjectionsRaw: { "": "Lugares de inyección de relatos", @@ -410,7 +411,7 @@ "": "Alcanzar la iluminación", }, wasteful_cast: { - "": "No desperdiciar...", + "": "No Gastar...", }, big_cast: { "": "...No Querer", @@ -482,7 +483,7 @@ circle: { no_exit: "El flujo de medio no pudo encontrar una salida en %s", many_exits: "El flujo de medio tenía demasiadas salidas en %s", - no_closure: "El flujo de medio no podrá regresa al Impetuoso en %s", + no_closure: "El flujo de medio no podrá regresa al Ímpetu en %s", }, lens: { "pattern.invalid": "Patrón inválido", @@ -520,10 +521,10 @@ get_caster: "Reflejo Mental", break_block: "Romper Bloque", edify: "Edificar Arbolito", - brainsweep: "Desollar Mente", + brainsweep: "Decerebrar", add_motion: "Impulso", "teleport/great": "Teletransporte Mayor", - blink: "Parpadeo", + blink: "Desplazamiento", "sentinel/": { create: "Invocar Centinela", "create/great": "Invocar Centinela Mayor", @@ -570,8 +571,8 @@ unappend: "Descomposición de Derivación", index: "Destilación Selectiva", singleton: "Purificación de Solo", - empty_list: "Reflejo vacío", - reverse: "Purificación retrógrada", + empty_list: "Reflejo Vacío", + reverse: "Purificación Retrógrada", last_n_list: "Gambito del Rebaño", splat: "Desintegración del Rebaño", index_of: "Destilación del Localizador", @@ -586,13 +587,13 @@ player: "Purificación de Entidad: Jugador", living: "Purificación de Entidad: Ser vivo", }, - zone_entity: "Destilación de Zona: Cualquier", + zone_entity: "Destilación Zonal: Cualquier", "zone_entity/": { - animal: "Destilación de Zona: Animal", - monster: "Destilación de Zona: Monstruo", - item: "Destilación de Zona: ítems", - player: "Destilación de Zona: Jugador", - living: "Destilación de Zona: Ser vivo", + animal: "Destilación Zonal: Animal", + monster: "Destilación Zonal: Monstruo", + item: "Destilación Zonal: ítems", + player: "Destilación Zonal: Jugador", + living: "Destilación Zonal: Ser vivo", }, type_equals: "Destilación de Similitud", type_not_equals: "Destilación de Disimilitud", @@ -640,7 +641,7 @@ construct_vec: "Exaltación Vectorial", deconstruct_vec: "Desintegración Vectorial", sin: "Purificación Seno", - cos: "Purificación Coeno", + cos: "Purificación Coseno", tan: "Purificación Tangente", arcsin: "Purificación de Seno Inverso", arccos: "Purificación de Coseno Inverso", @@ -657,7 +658,7 @@ "write/local": "Gambito de Hugin", readable: "Reflejo del Auditor", "readable/entity": "Purificación del Auditor", - writable: "Reflejo de Evaluador", + writable: "Reflejo del Evaluador", "writable/entity": "Purificación del Evaluador", "akashic/read": "Destilación de Akasha", "akashic/write": "Gambito de Akasha", @@ -666,11 +667,11 @@ explode: "Explosión", "explode/fire": "Bola de fuego", place_block: "Colocar Bloque", - "craft/cypher": "Craftear Cifra", - "craft/trinket": "Craftear Baratija", - "craft/artifact": "Craftear Artefacto", - recharge: "Recargar Ítems", - erase: "Borrar Ítems", + "craft/cypher": "Fabricar Cifra", + "craft/trinket": "Fabricar Baratija", + "craft/artifact": "Fabricar Artefacto", + recharge: "Recargar Ítem", + erase: "Borrar Ítem", create_water: "Crear Agua", destroy_water: "Destruir líquido", ignite: "Encender", @@ -721,6 +722,11 @@ set: "Alterar Escala", }, }, + "craft/battery": "Crafter Frasco de medio", + construct: "Destilación del Orador", + deconstruct: "Descomposición del Orador", + bool_coerce: "Purificación del Augur", + "if": "Exaltación del Augur", }, "book.hexcasting:": { get_entity_height: "Prfn. del Estadiómetro", @@ -731,13 +737,13 @@ player: "Prfn. de Entidad: Jugador", living: "Prfn. de Entidad: Ser vivo", }, - zone_entity: "Dstl. de Zona: Cualquier", + zone_entity: "Dstl. Zonal: Cualquier", "zone_entity/": { - animal: "Dstl. de Zona: Animal", - monster: "Dstl. de Zona: Monstruo", - item: "Dstl. de Zona: ítems", - player: "Dstl. de Zona: Jugador", - living: "Dstl. de Zona: Ser Vivo", + animal: "Dstl. Zonal: Animal", + monster: "Dstl. Zonal: Monstruo", + item: "Dstl. Zonal: ítems", + player: "Dstl. Zonal: Jugador", + living: "Dstl. Zonal: Ser Vivo", }, mul: "Dstl. Multiplicativa", div: "Dstl. Division", @@ -842,7 +848,7 @@ replaceable: "un lugar donde colocar un bloque", }, "circle.bool_directrix": { - no_bool: "La iota encontrada en %s era %s, no una bool", + no_bool: "la iota encontrada en %s era %s, no una bool", empty_stack: "la pila estaba vacía en %s", }, no_args: "esperaba %s o más argumentos, pero la pila estaba vacía", @@ -878,6 +884,7 @@ colorizer: "un pigmento", variant: "un ítem con variantes", placeable: "un ítem colocable", + media_for_battery: "un ítem de medio en bruto", }, }, category: { @@ -910,17 +917,18 @@ }, greatwork: { desc: "He visto... tanto. He... experimentado... la aniquilación, la deconstrucción y la reconstrucción. He visto a los átomos del mundo gritar mientras eran invertidos, subvertidos y reducidos a energía. He visto, he visto, he... s$(k)skibidi toilet 67 triple t/$", + "": "La gran obra", }, }, page: { mishaps2: { - "bad_mindflay.title": "Desomente inerte", + "bad_mindflay.title": "Decerebrar inerte", "no_circle.title": "Falta círculo de hechizos", no_circle: "Intenté lanzar una acción que requiere un círculo de hechizos sin tener uno.$(br2)Provoca chispas azul claro y vuelca mi inventario al suelo.", "no_record.title": "Falta Registro akáshico", }, potions: { - "effects.header": "Claridad Y Nubladidad", + "effects.header": "Claridad Y Nubosidad", }, mishaps: { "disabled.title": "Acción prohibida", @@ -938,7 +946,7 @@ }, }, geodes: { - "1": "¡Ajá! Mientras excavaba a gran profundidad bajo tierra, encontré una geoda enorme que resonaba con energía; una energía que presionaba mi cráneo y mis pensamientos. Y ahora, sostengo esa presión en mi mano, en forma sólida. Eso lo confirma. Este $(italic)debe/$ ser el lugar del que hablan las leyendas, donde se acumula _medio. Estos $(l:items/amethyst)$(item)cristales de amatista/$ deben ser una forma práctica y sólida de _Medio.", + "1": "¡Ajá! Mientras excavaba a gran profundidad bajo tierra, encontré una geoda enorme que resonaba con energía; una energía que presionaba mi cráneo y mis pensamientos. Y ahora, sostengo esa presión en mi mano, en forma sólida. Eso lo confirma. Este $(italic)debe/$ ser el lugar del que hablan las leyendas, donde se acumula $(#74b3f2)medio/$. Estos $(l:items/amethyst)$(item)cristales de amatista/$ deben ser una forma práctica y sólida de $(#74b3f2)Medio/$.", "2": "Parece que, además de los $(l:items/amethyst)$(item)Fragmentos de amatista/$ que he visto anteriormente, estos cristales también pueden soltar fragmentos de $(l:items/amethyst)$(item)Polvo de amatista/$, así como estos $(l:items/amethyst)$(item)Cristales de Amatista cargada/$. Da la impresión de que tendré más probabilidades de encontrar los $(l:items/amethyst)$(item)Cristales de Amatista cargada/$ si utilizo un pico con Fortuna.", "3": "Mientras contemplo la belleza del cristal, siento cómo surgen conexiones vertiginosas en mi mente. Es como si la esencia que flota en el aire entra a mí, otorgándome poder y claridad... Es una sensación maravillosa.$(br2)¡Por fin, mis estudios sobre lo arcano empiezan a cobrar sentido!$(p)Permíteme releer esas viejas leyendas ahora que sé qué es lo que estoy viendo.", }, @@ -950,6 +958,7 @@ }, start_to_see: { "1": "Los textos no mentían. La naturaleza cobró lo suyo.", + "3": "...Pero.$(br2)Pero por un instante fugaz, esa parte de mí... $(italic)vio/$... $(l:greatwork/the_work)$(thing)algo/$. ¿Un lugar, un diseño, tal vez? (Tales distinciones no parecían importar frente a... eso.)$(p)Y una... una membrana-barrera-piel-borde, separándome de un reino de pensamiento-flujo-luz-energía pura. Recuerdo... vi-pensé-recordé-sentí... la barrera difuminándose en sus bordes, apenas.$(p)Quería $(italic)atravesar./$", }, "101": { "4.header": "Un ejemplo", @@ -997,9 +1006,9 @@ }, "scroll.dust": "Pergamino se cubre con polvo", "scroll.scribble": "Pergamino se garabatea", - "impetus.fletcher.tick": "Impetuoso de flechero hace tic", - "impetus.redstone.register": "Impetuoso de sacerdote se timbe", - "impetus.redstone.clear": "Impetuoso de sacerdote despeja", + "impetus.fletcher.tick": "Ímpetu de flechero hace tic", + "impetus.redstone.register": "Ímpetu de sacerdote se timbe", + "impetus.redstone.clear": "Ímpetu de sacerdote despeja", "lore_fragment.read": "Leer fragmento de relato", "flight.ambience": "Jugador vuela", "flight.finish": "Vuelo finaliza", @@ -1023,7 +1032,7 @@ lens: "Lente de adivinación", jeweler_hammer: "Martillo de joyero", thought_knot: "Nudo de Pensiamento", - focus: "Centro", + focus: "Foco", abacus: "Ábaco", spellbook: "Libro de hechizos", scroll: "Pergaminos", @@ -1032,9 +1041,7 @@ pigments: "Pigmentos", edified: "Árboles Edificados", decoration: "Bloques decorativos", - brainsweeping: "Sobre el desollamiento de las mentes", - impetus: "Impetuoses", - directrix: "Directoras", + brainsweeping: "Sobre el decerebrar", akashiclib: "Bibliotecas akáshicas", quenching_allays: "Templar Allays", fanciful_staves: "Bastónes fantásticos", @@ -1074,6 +1081,9 @@ gravity: "Gravity Changer", pehkui: "Pehkui", }, + phials: "Fracos de Medio", + impetus: "Ímpetuses", + directrix: "Directoras", }, "iota.hexcasting:": { double: { @@ -1130,7 +1140,7 @@ lunge: "Estocada", sidestep: "Esquivar", ascend: "Ascender", - blink: "Parpadeo", + blink: "Desplazamiento", blastoff: "Despegue", radar: "Radar", detonate: "Detonar", @@ -1176,7 +1186,7 @@ binds: "Hex Casting", }, "key.hexcasting": { - spellbook_prev: "Anterior página del libro de hechizos", + spellbook_prev: "Página anterior del libro de hechizos", spellbook_next: "Siguiente página del libro de hechizos", }, "death.attack.hexcasting": { @@ -1204,4 +1214,7 @@ "fail.already": "%s ya estaba vacío", }, }, + "gui.hexcasting": { + spellcasting: "Cuadricula Hex", + }, } diff --git a/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 index 70ca8dac4d..3000254083 100644 --- a/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/es_es.flatten.json5 @@ -13,6 +13,7 @@ "default": "por defecto", turbo: "turbo", dark2: "oscuro2", + renders: "Renderizados", }, pattern: { show: "Haz clic para mostrar el hechizo", From c97d0b4ec0cad1e15ea251ce879d2e55b792eaf8 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 37/50] chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation Co-authored-by: Hexxy Weblate Co-authored-by: Lithyaku Co-authored-by: arsvenutia Co-authored-by: drawn badden Language: French Progress: 100.0% (23 of 23 strings) Progress: 66.3% (919 of 1386 strings) Progress: 66.4% (921 of 1386 strings) Progress: 75.2% (1043 of 1386 strings) Progress: 88.6% (1228 of 1386 strings) Progress: 90.5% (1255 of 1386 strings) Progress: 96.6% (1339 of 1386 strings) Progress: 97.6% (1354 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fr/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/fr/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/fr_fr.flatten.json5 | 1243 ++++++++++++----- .../hexcasting/lang/fr_fr.flatten.json5 | 40 +- 2 files changed, 968 insertions(+), 315 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 f6963620d9..7adcb64499 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 @@ -14,19 +14,19 @@ bamboo: "Sceptre en bambou", edified: "Sceptre en bois ensorcelé", quenched: "Sceptre d'éclat imprégné", - mindsplice: "Sceptre du Psycho-Transverseur", + mindsplice: "Sceptre de transfusion de psyché", }, amethyst_dust: "Poussière d'améthyste", charged_amethyst: "Améthyste chargée", scroll_small: { "": "Petit parchemin", empty: "Petit parchemin vierge", - of: "Comment avez-vous eu cet objet de %s", + of: "Comment avez-vous obtenu cet objet de %s", }, scroll_medium: { "": "Moyen parchemin", empty: "Moyen parchemin vierge", - of: "Comment avez-vous eu cet objet de %s", + of: "Comment avez-vous obtenu cet objet de %s", }, scroll: { "": "Grand parchemin", @@ -34,9 +34,9 @@ empty: "Grand parchemin vierge", }, thought_knot: "Nœud-Pensée", - spellbook: "Livre de sorts", + spellbook: "Livre de Sorts", trinket: "Relique", - battery: "Fiole de média", + battery: "Fiole de Média", abacus: "Abaque", jeweler_hammer: "Marteau de bijoutier", sub_sandwich: "Sandwich américain", @@ -64,21 +64,21 @@ asexual: "Pigment asexuel", bisexual: "Pigment bisexuel", lesbian: "Pigment lesbien", - nonbinary: "Pigment non binaire", + nonbinary: "Pigment non-binaire", pansexual: "Pigment pansexuel", transgender: "Pigment transgenre", - aroace: "Pigment Aroace", - demiboy: "Pigment Demiboy", - demigirl: "Pigment Demigirl", - gay: "Pigment Gay", - genderfluid: "Pigment Genderfluid", - genderqueer: "Pigment Genderqueer", - intersex: "Pigment Intersexe", - plural: "Pigment Pluriel", + aroace: "Pigment aroace", + demiboy: "Pigment demiboy", + demigirl: "Pigment demigirl", + gay: "Pigment gay", + genderfluid: "Pigment genderfluid", + genderqueer: "Pigment genderqueer", + intersex: "Pigment intersexe", + plural: "Pigment pluriel", }, ancient_colorizer: "Pigment antique", creative_unlocker: { - "": "Le cube de média", + "": "Le Cube de Média", for_emphasis: "MÉDIA INFINI", tooltip: "À consommer pour débloquer toutes les connaissances sur la %s.", mod_name: "Sorcellerie", @@ -95,8 +95,8 @@ lens: "Lentille de Divination", quenched_allay_shard: "Éclat d'Allay imprégné", uuid_colorizer: "Pigment d'Âme Scintillante", - default_colorizer: "Pigment Vide", - book: "Carnet de sortilèges", + default_colorizer: "Pigment vide", + book: "Carnet de Sortilèges", ancient_cypher: { "": "Talisman Antique", preset: "Talisman antique : %s", @@ -116,45 +116,45 @@ }, slate: { "": "Ardoise", - blank: "Ardoise Vierge", + blank: "Ardoise vierge", written: "Ardoise runique", }, slate_: { - block: "Bloc d'Ardoise", - tiles: "Carreaux d'Ardoise", - bricks: "Briques d'Ardoise", - bricks_small: "Petites Briques d'Ardoise", - pillar: "Pilier d'Ardoise", + block: "Bloc d'ardoise", + tiles: "Carreaux d'ardoise", + bricks: "Briques d'ardoise", + bricks_small: "Petites briques d'ardoise", + pillar: "Pilier d'ardoise", }, amethyst_: { - dust_block: "Bloc de poudre d'Améthyste", - tiles: "Carreaux d'Améthyste", - bricks: "Briques d'Améthyste", - bricks_small: "Petites Briques d'Améthyste", - pillar: "Pilier d'Améthyste", + dust_block: "Bloc de poudre d'améthyste", + tiles: "Carreaux d'améthyste", + bricks: "Briques d'améthyste", + bricks_small: "Petites briques d'améthyste", + pillar: "Pilier d'améthyste", }, slate_amethyst_: { - tiles: "Carreaux d'Ardoise et d'Améthyste", - bricks: "Briques d'Ardoise et d'Améthyste", - bricks_small: "Petites Briques d'Ardoise et d'Améthyste", - pillar: "Pilier d'Ardoise et d'Améthyste", + tiles: "Carreaux d'ardoise et d'améthyste", + bricks: "Briques d'ardoise et d'améthyste", + bricks_small: "Petites briques d'ardoise et d'améthyste", + pillar: "Pilier d'ardoise et d'améthyste", }, - scroll_paper: "Papier de Parchemin", - ancient_scroll_paper: "Papier de Parchemin Antique", - scroll_paper_lantern: "Lanterne en Papier", - ancient_scroll_paper_lantern: "Lanterne en Papier Antique", - amethyst_sconce: "Bougeoir d'Améthyste", + scroll_paper: "Papier de parchemin", + ancient_scroll_paper: "Papier de parchemin antique", + scroll_paper_lantern: "Lanterne en papier", + ancient_scroll_paper_lantern: "Lanterne en papier antique", + amethyst_sconce: "Bougeoir d'améthyste", directrix: { - empty: "Directrice Vierge", + empty: "Directrice vierge", redstone: "Directrice du Maçon", boolean: "Directrice du Berger", }, edified_: { log: "Bûche ensorcelée", - log_amethyst: "Bûche ensorcelée d'Améthyste", - log_aventurine: "Bûche ensorcelée d'Aventurine", - log_citrine: "Bûche ensorcelée de Citrine", - log_purple: "Bûche ensorcelée Violette", + log_amethyst: "Bûche ensorcelée d'améthyste", + log_aventurine: "Bûche ensorcelée d'aventurine", + log_citrine: "Bûche ensorcelée de citrine", + log_purple: "Bûche ensorcelée violette", wood: "Bois ensorcelé", planks: "Planches de bois ensorcelé", panel: "Panneau de bois ensorcelé", @@ -170,9 +170,9 @@ }, stripped_edified_log: "Bûche ensorcelée écorcée", stripped_edified_wood: "Bois ensorcelé écorcé", - amethyst_edified_leaves: "Feuilles d'Arbre ensorcelé d'Améthyste", - aventurine_edified_leaves: "Feuilles d'Arbre ensorcelé d'Aventurine", - citrine_edified_leaves: "Feuilles d'Arbre ensorcelé de Citrine", + amethyst_edified_leaves: "Feuilles d'arbre ensorcelé d'améthyste", + aventurine_edified_leaves: "Feuilles d'arbre ensorcelé d'aventurine", + citrine_edified_leaves: "Feuilles d'arbre ensorcelé de citrine", quenched_allay: "Allay imprégné", quenched_allay_: { tiles: "Carrelage d'Allay imprégné", @@ -180,7 +180,7 @@ bricks_small: "Petites briques d'Allay imprégné", }, impetus: { - empty: "Impetus Vierge", + empty: "Impetus vierge", rightclick: "Impetus de Forgeron", look: "Impetus de Fléchier", redstone: "Impetus de Clerc", @@ -188,39 +188,39 @@ }, "effect.hexcasting": { enlarge_grid: "Clarté", - shrink_grid: "Embrumement", + shrink_grid: "Brouillard", }, "item.minecraft.potion.effect": { enlarge_grid: "Potion de Clarté", enlarge_grid_long: "Potion de Clarté", enlarge_grid_strong: "Potion de Clarté", - shrink_grid: "Potion d'Embrumement", - shrink_grid_long: "Potion d'Embrumement", - shrink_grid_strong: "Potion d'Embrumement", + shrink_grid: "Potion de Brouillard", + shrink_grid_long: "Potion de Brouillard", + shrink_grid_strong: "Potion de Brouillard", }, "item.minecraft.splash_potion.effect": { enlarge_grid: "Potion de Clarté Jetable", enlarge_grid_long: "Potion de Clarté Jetable", enlarge_grid_strong: "Potion de Clarté Jetable", - shrink_grid: "Potion d'Embrumement Jetable", - shrink_grid_long: "Potion d'Embrumement Jetable", - shrink_grid_strong: "Potion d'Embrumement Jetable", + shrink_grid: "Potion de Brouillard Jetable", + shrink_grid_long: "Potion de Brouillard Jetable", + shrink_grid_strong: "Potion de Brouillard Jetable", }, "item.minecraft.lingering_potion.effect": { enlarge_grid: "Potion de Clarté Persistante", enlarge_grid_long: "Potion de Clarté Persistante", enlarge_grid_strong: "Potion de Clarté Persistante", - shrink_grid: "Potion d'Embrumement Persistante", - shrink_grid_long: "Potion d'Embrumement Persistante", - shrink_grid_strong: "Potion d'Embrumement Persistante", + shrink_grid: "Potion de Brouillard Persistante", + shrink_grid_long: "Potion de Brouillard Persistante", + shrink_grid_strong: "Potion de Brouillard Persistante", }, "item.minecraft.tipped_arrow.effect": { enlarge_grid: "Flèche de Clarté", enlarge_grid_long: "Flèche de Clarté", enlarge_grid_strong: "Flèche de Clarté", - shrink_grid: "Flèche d'Embrumement", - shrink_grid_long: "Flèche d'Embrumement", - shrink_grid_strong: "Flèche d'Embrumement", + shrink_grid: "Flèche de Brouillard", + shrink_grid_long: "Flèche de Brouillard", + shrink_grid_strong: "Flèche de Brouillard", }, "itemGroup.hexcasting": { hexcasting: "Hex Casting", @@ -233,11 +233,11 @@ binds: "Hex Casting", }, "key.hexcasting": { - spellbook_prev: "Page Précédente du livre de sorts", - spellbook_next: "Page Suivante du livre de sorts", + spellbook_prev: "Page Précédente du Livre de Sorts", + spellbook_next: "Page Suivante du Livre de Sorts", }, "tag.hexcasting": { - staves: "Sceptres de Sortilèges", + staves: "Sceptres de Sorcellerie", phial_base: "Fioles vides", edified_logs: "Bûches ensorcelées", edified_planks: "Planches ensorcelées", @@ -245,7 +245,7 @@ "tag.item.hexcasting": { directrices: "Directrices", seal_materials: "Matériel de scellé", - brainswept_circle_components: "Composants de Cercle de Psycho-Transversion", + brainswept_circle_components: "Composants de Cercle de Transfusion de Psyché", grants_root_advancement: "Octroie la progression racine", impeti: "Impeti", }, @@ -253,15 +253,15 @@ option: { common: { dustMediaAmount: { - "@Tooltip": "Combien de Média vaut une seule poudre d'améthyste", - "": "Quantité de Média en poudre", + "@Tooltip": "Combien de Média vaut une seule poussière d'améthyste", + "": "Quantité de Média de la Poussière d'améthyste", }, shardMediaAmount: { - "": "Quantité de Média en éclat", + "": "Quantité de Média de l'Éclat d'améthyste", "@Tooltip": "Combien de Média vaut un seul éclat d'améthyste", }, chargedCrystalMediaAmount: { - "": "Quantité de Média en cristal chargé", + "": "Quantité de Média de l'Améthyste chargée", "@Tooltip": "Combien de Média vaut un seul cristal chargé d'améthyste", }, mediaToHealthRate: { @@ -284,97 +284,97 @@ client: { ctrlTogglesOffStrokeOrder: { "": "Ctrl affiche l'ordre des traits", - "@Tooltip": "Si la touche Ctrl va plutôt *masquer* l'ordre des traits sur les runes", + "@Tooltip": "*Masquer* plutôt l'ordre des traits sur les Runes avec la touche Ctrl", }, invertSpellbookScrollDirection: { - "": "Inverse le sens du défilement du livre de sorts", - "@Tooltip": "Si le défilement vers le haut (opposé à celui vers le bas) va augmenter l'index de la page du livre de sorts et vice versa", + "": "Inverser le sens du défilement du Livre de Sorts", + "@Tooltip": "Faire défiler vers le haut (plutôt que vers le bas) va augmenter l'index de la page du Livre de Sorts et vice versa", }, disableInworldScrolling: { - "@Tooltip": "Désactive le défilement du livre de sorts et de l'Abaque dans le monde normal, conservant les touches du clavier et le défilement sur l'écran du sceptre normal", - "": "Désactive le défilement dans le monde", + "@Tooltip": "Empêche le défilement du Livre de Sorts et de l'Abaque dans le monde normal et conserve les touches et le défilement normal sur l'écran du Sceptre", + "": "Désactiver le défilement dans le monde", }, invertAbacusScrollDirection: { - "": "Inverse le sens de défilement de l'Abaque", - "@Tooltip": "Si le défilement vers le haut (opposé à celui vers le bas) va augmenter la valeur de l'Abaque et vice versa", + "": "Inverser le sens de défilement de l'Abaque", + "@Tooltip": "Faire défiler vers le haut (plutôt que vers le bas) va augmenter la valeur de l'Abaque et vice versa", }, gridSnapThreshold: { - "": "Sensibilité de l'accrochage de la grille", - "@Tooltip": "Lors de l'utilisation d'un sceptre, la distance à parcourir d'un point à un autre pour s'y accrocher, où 0.5 signifie 50% de la distance [0.5 - 1]", + "": "Sensibilité de l'accrochage de la Grille", + "@Tooltip": "La distance à parcourir depuis un point nécessaire pour s'accrocher au suivant lors de l'utilisation d'un Sceptre, où 0.5 signifie 50% de la distance [0.5 - 1]", }, clickingTogglesDrawing: { "": "Cliquer pour activer/désactiver le dessin", - "@Tooltip": "S'il faut cliquer pour commencer et arrêter le dessin au lieu de cliquer et de faire glisser pour dessiner", + "@Tooltip": "Cliquer une fois pour commencer et pour arrêter le dessin au lieu de cliquer et glisser pour dessiner", }, alwaysShowListCommas: { - "": "Toujours afficher les virgules des listes", - "@Tooltip": "Si tous les types de iota doivent être séparés par une virgule lorsqu'affichés dans des listes (par défaut, les iotas de runes n'utilisent pas de virgule)", + "": "Toujours afficher les virgules dans les Listes", + "@Tooltip": "Séparer tous les types d'Iota par une virgule lorsqu'ils sont affichés dans des Listes (par défaut, les Iotas de Rune n'utilisent pas de virgule)", }, staticActiveSlates: { - "": "Ardoises statiques actives", - "@Tooltip": "Si les runes sur des ardoises actives doivent être affichées sans oscillation (Améliore grandement les performances lorsqu'il y a beaucoup d'ardoises actives)", + "": "Ardoises actives statiques", + "@Tooltip": "Afficher les Runes sur les ardoises actives sans oscillation (Améliore grandement les performances lorsqu'il y a beaucoup d'ardoises actives)", }, advancedTooltipsShowsIotaNBT: { - "": "Les infobulles avancées affichent les NBT des iotas", - "@Tooltip": "Si activer les infobulles avancées (F3+H) doit afficher le NBT complet des iotas stockés dans des objets comme les Foci et les livres de sorts", + "": "Afficher les NBT d'Iota dans les infobulles avancées", + "@Tooltip": "Activer les infobulles avancées (F3+H) affiche les NBT complètes des Iotas stockés dans des objets comme les Foci et les Livres de Sorts", }, }, server: { opBreakHarvestLevel: { - "@Tooltip": "Le niveau de minage du sort \"Briser un block\"\n0 = bois, 1 = roche, 2 = fer, 3 = diamant, 4 = netherite.", + "@Tooltip": "Le niveau de minage du sort \"Brise-Bloc\"\n0 = bois, 1 = roche, 2 = fer, 3 = diamant, 4 = netherite.", "": "Niveau de minage", }, costRescaleListRaw: { - "@Tooltip": "Associe les emplacements des ressources au facteur d'échelle correspondant au coût en Média de cette action spécifique. Par exemple, la commande \"hexcasting:add_motion 3\" multipliera le cout d'Impulsion par 3.", - "": "Facteurs multiplicateurs des coûts par action", + "@Tooltip": "Associe les emplacements de ressources au facteur d'échelle correspondant au coût en Média de cette Action spécifique. Par exemple, la commande \"hexcasting:add_motion 3\" multipliera le cout d'Impulsion par 3.", + "": "Facteurs de multiplication des coûts par Action", }, greaterTeleportSplatsItems: { - "": "Téléportation Supérieure projette les objets", - "@Tooltip": "Si les objets devraient être projetés hors de l'inventaire du joueur lorsqu'il utilise Téléportation Supérieure", + "": "Téléportation Supérieure projette l'inventaire au sol", + "@Tooltip": "Projeter les objets hors de l'inventaire du joueur lorsqu'il utilise Téléportation Supérieure", }, doesTrueNameHaveAmbit: { - "": "Est-ce que les Vrais Noms ont une portée", - "@Tooltip": "Si les Vrais Noms (ie référence à un joueur) permettent de cibler le joueur référencé même en dehors de la portée standard", + "": "Est-ce que les Noms Véritables ont une portée", + "@Tooltip": "Les Noms Véritables (p. ex. référence à une Entité de joueur) permettent de cibler le joueur référencé même en dehors de la portée standard", }, tpDimDenylist: { - "": "Liste noire de la Téléportation selon les dimensions", - "@Tooltip": "Emplacement des ressources des dimensions où la Téléportation n'est pas autorisée", + "": "Liste noire de Téléportation selon les dimensions", + "@Tooltip": "Emplacement de ressources des dimensions où la Téléportation n'est pas autorisée", }, maxOpCount: { - "": "Nombre maximal d'actions", - "@Tooltip": "Le nombre maximum d'actions pouvant être exécutées pendant un tick pour éviter de congestionner le serveur.", + "": "Nombre maximal d'Actions", + "@Tooltip": "Le nombre maximum d'Actions pouvant être exécutées pendant un tick pour éviter de congestionner le serveur.", }, maxSpellCircleLength: { - "": "Taille maximum d'un Cercle de Sorts", - "@Tooltip": "Taille maximum d'ardoises dans un Cercle de Sorts", + "": "Longueur maximal d'un Cercle de Sorts", + "@Tooltip": "Nombre maximum d'ardoises dans un Cercle de Sorts", }, actionDenyList: { - "": "Liste noire des actions", - "@Tooltip": "Emplacement de ressources pour des actions interdites. Essayer de lancer une de ces actions résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", + "": "Liste noire d'Actions", + "@Tooltip": "Emplacement de ressources pour Actions interdites. Essayer de lancer une de ces actions résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", }, circleActionDenyList: { - "": "Liste noire des actions de Cercle", - "@Tooltip": "Emplacement de ressources pour des actions interdites à l'intérieur de Cercles. Essayer de lancer une de ces actions depuis un Cercle résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", + "": "Liste noire d'Actions de Cercles", + "@Tooltip": "Emplacement de ressources pour Actions interdites à l'intérieur de Cercles. Essayer de lancer une de ces Actions depuis un Cercle résultera en un méchef. Par exemple, hexcasting:get_caster bloquera Reflet de l'Esprit.", }, globalCostScaling: { - "": "Facteur multiplicateur global des coûts", - "@Tooltip": "Tous les coûts en Média, à l'exception des actions avec le tag #hexcasting:cannot_modify_cost, seront multipliées par cette valeur. Si vous voulez modifier le coût d'une action avec le tag sus-nommé, utilisez la liste des facteurs par action.", + "": "Facteur de multiplication global des coûts", + "@Tooltip": "Tous les coûts en $(#b38ef3)Média/$, sauf celui des Actions avec le tag #hexcasting:cannot_modify_cost, seront multipliées par cette valeur. Si vous voulez modifier le coût d'une Action avec le tag sus-nommé, utilisez la liste de facteurs de multiplication par action.", }, traderScrollChance: { "": "Chance d'un Parchemin chez un vendeur itinérant", - "@Tooltip": "Chance d'un Parchemin antique chez un vendeur itinérant", + "@Tooltip": "Chance de trouver un Parchemin antique chez un vendeur itinérant", }, scrollInjectionsRaw: { - "@Tooltip": "Associe les noms de la table de butins à la quantité de runes par monde que des parchemins doivent contenir . Il y a environ 50% de chance d'avoir un parchemin aléatoire depuis un coffre indiqué ici ; une fois cette condition remplie, entre 1 et plusieurs parchemins sont générés.", + "@Tooltip": "Associe les noms de la table de butins à la quantité de Runes par-monde sur parchemins qu'ils devraient contenir. Il y a environ 50% de chance d'avoir un parchemin aléatoire depuis un coffre indiqué ici ; une fois cette condition remplie, entre 1 et cette quantité de parchemins sont générés.", "": "Poids de l'injection des parchemins", }, loreInjectionsRaw: { - "": "Lieux d'injection d'histoires", - "@Tooltip": "Liste les tables de butin auxquelles les fragments d'histoire devraient être ajoutés.", + "": "Lieux d'injection d'Histoire", + "@Tooltip": "Liste les tables de butin auxquelles les fragments d'Histoire devraient être ajoutés.", }, loreChance: { - "": "Chance d'un fragment d'histoire", - "@Tooltip": "Les chances qu'un fragment d'histoire apparaisse dans n'importe laquelle des tables de butin ci-dessus.", + "": "Chance d'un fragment d'Histoire", + "@Tooltip": "Les chances qu'un fragment d'Histoire apparaisse dans n'importe laquelle des tables de butin ci-dessus.", }, cypherInjectionsRaw: { "": "Lieux d'injection de Talismans antiques", @@ -385,12 +385,12 @@ "@Tooltip": "Les chances qu'un Talisman antique apparaisse dans n'importe laquelle des tables de butin ci-dessus.", }, amethystShardModification: { - "": "Changement du taux d'apparition des éclats d'Améthyste", - "@Tooltip": "A quel point le nombre d'éclats d'Améthyste tombés d'un amas d'Améthyste est augmenté/réduit.", + "": "Changement du taux d'apparition des éclats d'améthyste", + "@Tooltip": "De combien le nombre d'éclats d'améthyste tombés d'un amas d'améthyste est augmenté/réduit.", }, villagersOffendedByMindMurder: { - "": "Villageois offensés par la Psycho-Transversion", - "@Tooltip": "Détermine si les villageois devraient se mettre en colère contre le joueur après avoir été témoin d'une Déchirure Mentale", + "": "Villageois offensés par la Transfusion de Psyché", + "@Tooltip": "Les villageois devraient se mettre en colère contre le joueur après avoir été témoin d'une Déchirure Mentale", }, }, }, @@ -411,44 +411,44 @@ "advancement.hexcasting:": { enlightenment: { "": "Atteindre l'Illumination", - desc: "Détruire une barrière mentale en lançant un hex qui consomme presque toute ta santé.", + desc: "Briser une barrière mentale en lançant un Sortilège qui consomme presque toute ta santé.", }, creative_unlocker: { "": "POUISSANCE ILLIMITÉE", - desc: "Trouve l'objet créatif de debug.", + desc: "Trouver l'objet créatif de debug.", }, wasteful_cast: { "": "Qui ne tente rien...", - desc: "Gaspiller une grande quantité de Média en lançant un hex.", + desc: "Gaspiller une grande quantité de Média en lançant un Sortilège.", }, root: { - desc: "Trouve et mine une forme concentrée de Média se développant profondément sous la terre.", + desc: "Trouver et miner une forme concentrée de Média qui se développait profondément sous la terre.", "": "Études de Sorcellerie", }, big_cast: { "": "...n'a rien", - desc: "Lancer un seul sort qui requiert une quantité immense de Média.", + desc: "Lancer un Sortilège qui requiert une quantité immense de Média à lui seul.", }, y_u_no_cast_angy: { - "": "Une Diversion Aveuglante", - desc: "Essaye de lancer un sort depuis un parchemin, mais échouer.", + "": "Une Diversion Aveugle", + desc: "Essayer de lancer un sort depuis un parchemin, mais échouer.", }, opened_eyes: { "": "Yeux ouverts", - desc: "Laisser Mère Nature prendre un bout de votre esprit en paiement de votre sortilège. Que pourrait-il se passer si vous La laisser en avoir plus ?", + desc: "Laisser Mère Nature prendre un bout de votre esprit en paiement pour l'exécution de votre Sortilège. Que pourrait-il se passer si vous La laissiez en avoir plus ?", }, lore: { - "": "Histoire de Hexcasting", - desc: "Lire un fragment d'histoire", + "": "Historien de la Sorcellerie", + desc: "Lire un fragment d'Histoire", }, "lore/": { cardamom1: { "": "Cardamom Steles #1", - desc: "Lettre de Cardamom Steles à son père #1", + desc: "Lettre de Cardamom Steles adressée à son père #1", }, cardamom2: { "": "Cardamom Steles #2", - desc: "Letre de Cardamom Steles à son père #2", + desc: "Lettre de Cardamom Steles adressée à son père #2", }, cardamom3: { "": "Cardamom Steles #3", @@ -499,7 +499,7 @@ "bounds/max": "Reflet du Pli Supérieur", }, empty_list: "Reflet du Vide", - stack_len: "Reflet d'Assemblage", + stack_len: "Reflet de la Meute", random: "Reflet de l'Entropie", read: "Reflet du Scribe", "entity_pos/eye": "Purification de la Boussole", @@ -537,18 +537,18 @@ "interop/": { "gravity/": { get: "Purification Gravitationnelle", - set: "Altérer la Gravité", + set: "Altération de Gravité", }, "pehkui/": { get: "Purification de Gulliver", - set: "Altérer la taille", + set: "Altération de Taille", }, }, "read/local": "Reflet de Munin", readable: "Reflet de l'Auditeur", writable: "Reflet de l'Évaluateur", thanatos: "Reflet de Thanatos", - last_n_list: "Gambit d'Assemblage", + last_n_list: "Gambit de la Meute", swap: "Gambit du Fou", rotate: "Gambit Rotatif", rotate_reverse: "Gambit Rotatif II", @@ -563,14 +563,14 @@ "write/entity": "Gambit du Chroniqueur", "write/local": "Gambit d'Huginn", "akashic/write": "Gambit d'Akasha", - eval: "Gambit d'Hermes", + eval: "Gambit d'Hermès", "eval/cc": "Gambit d'Iris", for_each: "Gambit de Thoth", halt: "Gambit de Charon", unappend: "Décomposition Dérivative", deconstruct: "Décomposition de l'Orateur", duplicate: "Décomposition du Gémeaux", - splat: "Désintégration d'Assemblage", + splat: "Désintégration de la Meute", deconstruct_vec: "Désintégration Vectorielle", slice: "Exaltation Sélective", replace: "Exaltation du Chirurgien", @@ -579,7 +579,7 @@ raycast: "Distillation de l'Archer", "raycast/axis": "Distillation de l'Architecte", "raycast/entity": "Distillation de l'Éclaireur", - append: "Distillation d'Intégration", + append: "Distillation par Intégration", index: "Distillation Sélective", index_of: "Distillation du Localisateur", remove_from: "Distillation de l'Exciseur", @@ -626,35 +626,35 @@ arctan2: "Distillation de la Tangente Inversée", logarithm: "Distillation Logarithmique", "akashic/read": "Distillation d'Akasha", - "craft/cypher": "Créer un Talisman", - "craft/trinket": "Créer une Relique", - "craft/artifact": "Créer un Artéfact", - print: "Révéler", - beep: "Faire une Note", + "craft/cypher": "Création de Talisman", + "craft/trinket": "Création de Relique", + "craft/artifact": "Création d'Artéfact", + print: "Révélation", + beep: "Prendre Note", explode: "Explosion", - "explode/fire": "Boule de feu", + "explode/fire": "Boule de Feu", add_motion: "Impulsion", - blink: "Clignotement", - break_block: "Briser un block", - place_block: "Placer un block", - "craft/battery": "Créer une fiole", - recharge: "Recharger un objet", - erase: "Suppression d'objet", - create_water: "Créer de l'eau", - destroy_water: "Détruire un liquide", - ignite: "Embraser", - extinguish: "Extinction de zone", - conjure_block: "Conjuration de block", - conjure_light: "Conjuration de lumière", + blink: "Clignement", + break_block: "Brise-Bloc", + place_block: "Pose-Bloc", + "craft/battery": "Création de Fiole", + recharge: "Recharge d'Objet Magique", + erase: "Suppression d'Objet Magique", + create_water: "Conjuration Aquatique", + destroy_water: "Destruction de Liquides", + ignite: "Ignis", + extinguish: "Extinction de Zone", + conjure_block: "Conjuration de Bloc", + conjure_light: "Conjuration de Lumière", bonemeal: "Surcroissance", - edify: "Ensorcellement de pousse", - colorize: "Internaliser un pigment", - cycle_variant: "Glamour de l'Ensorceleur", + edify: "Ensorcellement de Pousse d'Arbre", + colorize: "Assimilation de Pigment", + cycle_variant: "Charme de l'Ensorceleur", "sentinel/": { - create: "Invoquer la Sentinelle", - "create/great": "Invoquer la Sentinelle Supérieure", - destroy: "Bannir la Sentinelle", - get_pos: "Localiser la Sentinelle", + create: "Invocation de Sentinelle", + "create/great": "Invocation de Sentinelle Supérieure", + destroy: "Exil de Sentinelle", + get_pos: "Localisation de Sentinelle", wayfind: "Voie de la Sentinelle", }, "potion/": { @@ -663,19 +663,19 @@ wither: "Nadir du Soleil Noir", poison: "Nadir du Soleil Rouge", slowness: "Nadir du Soleil Vert", - regeneration: "Zenith du Soleil Blanc", - night_vision: "Zenith du Soleil Bleu", - absorption: "Zenith du Soleil Noir", - haste: "Zenith du Soleil Rouge", - strength: "Zenith du Soleil Vert", + regeneration: "Zénith du Soleil Blanc", + night_vision: "Zénith du Soleil Bleu", + absorption: "Zénith du Soleil Noir", + haste: "Zénith du Soleil Rouge", + strength: "Zénith du Soleil Vert", }, flight: "Altiora", "flight/range": "Vol de l'Anachorète", "flight/time": "Vol du Voyageur", - lightning: "Invoquer la foudre", - summon_rain: "Invoquer la pluie", - dispel_rain: "Disperser la pluie", - create_lava: "Créer de la lave", + lightning: "Invocation de Foudre", + summon_rain: "Invocation de Pluie", + dispel_rain: "Dissipation de la Pluie", + create_lava: "Conjuration Volcanique", "teleport/great": "Téléportation Supérieure", escape: "Considération", runtime_escape: "Contemplation", @@ -684,7 +684,8 @@ open_n_parens: "Méditation", close_all_parens: "Souvenir", read_into_parens: "Interjection", - undo: "Évanescence", + undo: "Evanescence", + brainsweep: "Déchirure Mentale", }, "book.hexcasting:": { number: "Reflet Numérique", @@ -727,72 +728,143 @@ }, page: { "101": { - "4": "Il est important de noter que l'$(italic)orientation/$ d'une rune ne compte pas vraiment . Ces runes font toutes deux référence à la même action : $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, par exemple .", - "6": "Par example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ crée un iota qui me représente $(italic)moi/$, l'ensorceleur et l'ajoute par dessus le stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$ prend l'iota tout en haut du stack, s'il représente une entité et le transforme en iota qui reflète la position de cette entité.$(br2)Donc, dessiner ces runes dans cet ordre là aurait pour résultat un iota sur le stack qui représente ma position.", + "4": "Il est important de noter que l'$(italic)orientation/$ d'une Rune ne compte pas vraiment . Ces Runes font toutes deux référence à la même action : $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, par exemple .", + "6": "Par example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ crée un Iota qui me représente $(italic)moi/$, l'ensorceleur et l'ajoute par dessus la Stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$ prend l'Iota tout en haut de la Stack, s'il représente une Entité et le transforme en Iota qui reflète la position de cette Entité.$(br2)Donc, dessiner ces Runes dans cet ordre là aurait pour résultat un Iota sur la Stack qui représente ma position.", "9": "Bien sûr, rien n'est gratuit dans la vie. Tous les Sorts et quelques autres Actions demandent du $(#b38ef3)Média/$ comme paiement.$(br2)Du mieux que je le comprenne un $(#b38ef3)Sortilège/$ est un peu comme un plan d'action que l'on présente à Mère Nature-- Dans cette analogie, le $(#b38ef3)Média/$ est utilisé pour fournir les arguments qui le justifient, donc Mère Nature accepte ton plan et le mène à ses fins.", - "12": "Je devrais faire bien attention de vraiment avoir suffisamment d'améthyste dans mon inventaire-- certains textes antiques disent que Mère Nature accepte avec joie l'esprit des ensorceleurs comme paiement à la place. Ils décrivent le ressenti comme abominable mais bizarrement euphorique, \"[...] une efferevescente dissolution de lumière et d'énergie...\" Peut-être est-ce pourquoi tous les vieux maîtres de cette discipline ont fini par perdre la tête. J'imagine que brûler des morceaux de ma psyché pour de la puissance ne doit pas $(italic)être très bon pour la santé/$.", + "12": "Je devrais faire bien attention de vraiment avoir suffisamment d'améthyste dans mon inventaire-- certains textes antiques disent que Mère Nature accepte avec joie l'esprit des ensorceleurs comme paiement à la place. Ils décrivent le ressenti comme abominable mais bizarrement euphorique, \"[...] une effervescente dissolution de lumière et d'énergie...\" Peut-être est-ce pourquoi tous les vieux maîtres de cette discipline ont fini par perdre la tête. J'imagine que brûler des morceaux de ma psyché pour de la puissance ne doit pas $(italic)être très bon pour la santé/$.", "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 $(#b38ef3)Sortilèges/$ est plutôt difficile-- pas étonnant que cet art avait disparu dans les sables du temps ! Je vais devoir lire et relire mes notes méticuleusement.$(br2) Je peux commencer un $(#b38ef3)Sortilège en appuyant sur $(k:use) avec un $(l:items/staff)$(item)Sceptre/$ dans la main-- en 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 $(#b38ef3)Média de la Grille ; terminer une Rune executera son Action associée (plus d'infos un peu plus loin).", + "2": "Une fois que j'ai dessiné suffisamment de Runes pour lancer mon Sortilège, la Grille disparaîtra tandis que le $(#b38ef3)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-- elles sont ce que j'utilise pour manipuler le $(#b38ef3)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 $(#b38ef3)Média/$ d'une manière propre à elles-mêmes, et lorsque ces influences font quelque chose d'utile, on appelle ça une Action. $(br2)Le $(#b38ef3)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 $(#b38ef3)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 $(#b38ef3)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.", + "10": "Mis-à-part ça, on dirait que personne n'a fait beaucoup de recherches sur la valeur $(italic)exacte/$ en Média de n'importe quel morceau d'$(l:items/amethyst)$(item)améthyste/$. D'autant que je le sache, un $(l:items/amethyst)$(item)éclat d'améthyste/$ vaut cinq $(l:items/amethyst)$(item)poussières d'améthyste/$ et une $(l:items/amethyst)$(item)améthyste chargée/$ en vaut dix.$(br2)Bizarrement, on dirait qu'il n'y a pas d'autres forme d'$(l:items/amethyst)$(item)améthyste/$ adaptée à la conception de $(#b38ef3)Sortilèges/$. Je suspecte que les blocs entiers ou les amas de cristaux sont trop solides pour être aisément converti en $(#b38ef3)Média/$.", + "11": "Il est aussi important de noter que chaque Action va consommer le $(#b38ef3)Média/$ dont il a besoin immédiatement, au lieu de tout prendre d'un coup lorsque le Sortilège se lance. D'ailleurs, une Action consommera toujours des objets entiers-- une Action qui ne requiert qu'une $(l:items/amethyst)$(item)poussière d'améthyste/$ consommera une $(l:items/amethyst)$(item)améthyste chargée/$ entière si c'est la seule chose dont je dispose dans mon inventaire.$(br2)Il serait donc judicieux d'aussi apporter de la poussière pour la conception de Sortilèges-- Mais qui ne tente rien, n'a rien...", + "13": "Peut-être que quelque chose a changé après tout. Lors de mes expérimentations, je n'y suis jamais parvenu ; si je tombe à court de $(media)média/$, le sort échouera juste, comme si une barrière l'empêchait de me blesser.$(br2)Il serait intéressant de creuser au plus profond de ce mystère, mais je suppose que pour l'instant elle me gardera en sécurité.", + "14": "J'ai aussi découvert un court texte amusant qui expliquerait pourquoi tant de practiciens de la magie en général finissent par perdre la tête, que j'apprécierai sûrement comme de la petite lecture de loisir non canonique de ce monde. $(br2)$(italic)Avertissement : légère horreur corporelle et éléments suggestifs./$", + "14.link_text": "Blog de Goblin Punch", + "15": "Enfin, il semblerait que les Sorts aient une limite dans leur portée, environ 32 blocs de distance par rapport à ma position. Essayer d'affecter quoi que ce soit en dehors de cette zone causera l'échec de mon Sort.$(br2) Malgré ça, si j'ai la référence d'un Joueur, je peux l'atteindre de n'importe où. Bon, ça ne marche que sur eux directement par contre ; je ne peux pas utiliser ce fait pour affecter le monde autour d'eux s'ils sont en dehors de ma portée.$(br)Je devrais faire bien attention avant de donner une référence comme ça. Si un ensorceleur bienveillant pourrait l'utiliser sagement et avec diligence, j'en tremble d'imaginer ce que quelqu'un de malintentionné pourrait en faire.", }, couldnt_cast: { - "3": "... Après mûre réflexion ... J'ai découvert un changement dans mon corps .$(p)Il semblerait qu'au lieu d'utiliser de l'$(l:items/amethyst)$(item)Améthyste/$, je suis maintenant capable de lancer des sorts en utilisant ma propre force vitale et mentale -- exactement comme dans les légendes d'autrefois .$(p)Maintenant, je ne suis pas sûr de savoir pourquoi j'en suis capable. C'est juste que... la vérité-science-fardeau a toujours été là, et je peux le voir clairement désormais . Je la connais . Je l'endure .$(br2)Bienheureusement, je suis également bien conscient de mes limites-- Je pense avoir accès à approximativement deux $(l:items/amethyst)$(item)Améthystes Chargées/$ de $(#b38ef3)Média/$ lorsque ma santé est à son apogée.", + "3": "... Après mûre réflexion... J'ai découvert un changement dans mon corps .$(p)Il semblerait qu'à la place d'utiliser de l'$(l:items/amethyst)$(item)améthyste/$, je suis maintenant capable de lancer des Sorts en utilisant ma propre force vitale et mentale-- exactement comme dans les légendes d'autrefois .$(p)Maintenant que j'y pense, je ne suis pas sûr de savoir pourquoi j'en suis capable. C'est juste que... la vérité-science-fardeau a toujours été là, et je peux la voir clairement désormais . Je la connais . Je l'endure .$(br2)Bienheureusement, je suis également bien conscient de mes limites-- Je pense avoir accès à approximativement deux cristaux d'$(l:items/amethyst)$(item)améthyste chargée/$ de $(#b38ef3)Média/$ lorsque ma santé est à son sommet.", + "1": "Argh! Pourquoi est-ce qu'Elle ne me laisse pas lancer le Sort ?!$(br2)Le parchemin que j'ai trouvé résonne d'authenticité. Je peux le $(italic)sentir/$ vibrer dans le parchemin-- la Rune est vraie, ou du moins aussi vraie qu'une Rune peut l'être. Le Sort est $(italic)juste là/$.$(p)Mais on dirait qu'elle se cache de l'autre côté d'une sorte de voile. Je l'ai appelé-- il a essayé de se manifester-- mais il ne $(italic)POUVAIT PAS/$.", + "2": "On dirait que la barrière s'est légèrement affaiblie avec la force que j'ai exercé qur le Sort ; pourtant malgré tous mes efforts-- ma concentration la plus profonde, mon améthyste la plus pure, mes dessins les plus précis-- La barrière $(italic)refuse/$ de se laisser traverser. Ça me rend dingue.$(p)C'est $(italic)ici/$ que mes recherches s'arrêtent ? Maudit par mon impuissance, forcé d'abandonner les pouvoirs qui me reviennent de droit?$(br2)Je dois respirer un bon coup. Je devrais méditer sur ce que j'ai appris, même si ce n'était pas grand-chose...", + "4": "J'en tremble rien qu'à l'idée-- J'ai gardé ma psyché intacte jusqu'à maintenant, dans mes recherches. Mais le fait est-- Je forme une moitié d'un lien précaire.$(p)Je suis connecté à une autre moitié-- une moitié dont les frontières ont faibli à cause de ce traumatisme. Un endroit où de simples Actions écrivent une gloire éternelle.$(p)Ai-je vraiment tord de vouloir y accéder pour mes fins ?", }, stack: { "3": "Les actions sont (pour la plupart) sont limitées aux interactions avec le stack de sorcellerie de ces façons là. Ils vont prendre les iotas qui les intéressent (aussi connus comme \"arguments\" ou \"paramètres\"), puis les traiter et pousser une certaines quantité de résultats.$(br2)Bien évidemment, certaines actions (p. ex. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$) peuvent ne pas donner d'arguments et d'autres actions (en particulier les sorts) peuvent ne rien produire après coup.", "4": "Des actions encore plus complexes peuvent être exprimées avec des termes comme pousser, prendre et observer. Par exemple, le $(l:patterns/stackmanip#hexcasting:swap)$(action)Gambit du Fou/$ échange les deux iotas du dessus de la stack. Cela peut être visualisé comme prendre deux iotas et les pousser dans l'ordre inverse. Autre exemple, la $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Décomposition du Gémeaux/$ duplique le sommet de la stack -- en d'autres mots, on observe la stack et on pousse une copie de ce que l'on trouve.", + "1": "La $(thing)Stack/$, aussi appelée \"LIFO\", est un concept tiré des sciences informatiques. En résumé, c'est un ensemble de choses placées de sorte qu'on ne puisse interagir qu'avec les informations les plus récentes.$(br2)Visualisez une pile d'assiettes : On rajoute les nouvelles assiettes par-dessus et si vous prendre des assiettes au milieu de la pile, il faudra retirer toutes celles qui la recouvrent avant.", + "2": "Puisque la Stack est un concept simple, il n'y a que quelques moyens précis d'interagir avec :$(li)$(italic)Ajouter quelque chose sur le dessus/$, aussi connu sous le nom de \"pousser\" ;$(li)$(italic)Retirer le dernier élément/$, aussi connu sous le nom de \"prendre\" ;$(li)$(italic)Examiner ou modifier le dernier élément/$, aussi connu sous le nom \"d'observer\".$(br)Le dernier élément ajouté à la Stack est appelé \"le haut\" ou \"le sommet\", toujours dans l'analogie de la pile d'assiettes.$(p)Par exemple, si l'on pousse 1, puis que l'on pousse 2, puis que l'on prend une valeur, le sommet de la Stack sera 1.", }, naming: { "2": "$(li)Un $(thing)Reflet/$ ne prend rien et pousse un iota. $(li)Une $(thing)Purification/$ prend un iota et en pousse un autre. $(li)Une $(thing)Distillation/$ prend deux iotas et n'en pousse qu'un seul. $(li)Une $(thing)Exaltation/$ prend trois iotas ou plus et n'en pousse qu'un seul. $(li)Une $(thing)Décomposition/$ prend un argument et en pousse deux autres. $(li)Une $(thing)Désintégration/$ en prend une et en pousse trois ou plus. $(li)Enfin, un $(thing)Gambit/$ en pousse ou en prend n'importe quel autre nombre (ou il manipule le stack d'une quelconque autre manière).", "3": "Les Sorts semblent être une exception à cette nomenclature et sont plus ou moins nommés en fonction de ce qu'ils font -- après tout, pourquoi appeler un Sort $(action)Gambit de Demoman/$ quand on peut juste dire $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$ ?", + "1": "Les noms donnés aux actions par les anciens sont pour le moins particuliers, mais je pense qu'il y a tout de même une logique.$(br2)Les actions semblent regroupées avec des noms précis, selon le nombre d'iotas qu'elles retirent et ajoutent à la Stack.", }, thought_knot: { "2": "Quand je le craft il ne contient pas d'iota. En utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ en tenant un $(item)Noeud-Pensée/$ dans mon autre main, j'enlève l'iota sur la stack et l'enregistre dans le $(item)Noeud-Pensée/$. En utilisant le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, je copie l'iota contenu dans le $(item)Noeud-Pensée/$ et l'ajoute sur la stack.$(br2)Une fois que l'on a écrit dans un $(item)Noeud-Pensée/$, son fil est inexorablement noué ; l'iota peut être lu autant de fois que voulu, mais il est impossible d'effacer ou de remplacer son contenu. Heureusement qu'ils ne sont pas chers à produire.", "3": "D'ailleurs, si j'enregistre une entité dans un $(item)Noeud-Pensée/$ et que j'essaye de le rappeler après la mort ou la disparition de l'entité, le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$ ajoutera $(thing)Null/$ au stack à son lieu.", + "crafting.desc": "$(italic)Comment te sentirais-tu si quelqu'un te voyait porter une pancarte qui disait : \"Je suis beau et intrépide?\"/$", + "1": "Les gens distraits attachent parfois un bout de ficelle à leur doigt pour les aider à se rappeler de quelque chose d'important. Je pense pouvoir utiliser cette idée dans mon art. En nouant du fil d'une façon spécifique, je devrais pouvoir conserver un iota stable, en dehors de ma Stack.$(br2)J'appellerai mon invention le $(item)Nœud-Pensée/$.", }, spellcircles: { "2": "Pour commencer le rituel j'ai besoin d'un $(l:greatwork/impetus)$(item)Impetus/$ pour créer une vague de $(#b38ef3)Média/$ auto-suffisante. Cette vague voyage au travers d'$(l:items/slate)$(item)slates/$ ou d'autres blocks adaptés, activant chaque rune qu'elle rencontre.$(br2)S'il n'y a aucun moyen pour la vague de rejoindre l'$(l:greatwork/impetus)$(item)Impetus/$, le rituel échouera immédiatement. Il faut également prendre en compte que la direction dans laquelle la vague sort d'un block DOIT être claire, ou le rituel échouera au block avec trop de voisins.", - "4": "Miracle parmi les miracles, le cercle ne consommera ni le $(#b38ef3)Média/$ de mon inventaire ni de mon esprit. A la place, des éclats cristallisés de $(#b38ef3)Média/$ doivent être fournis à l'$(l:greatwork/impetus)$(item)Impetus/$ via un entonnoir, ou des méthodes similaires.$(br2)L'utilisation d'une $(l:items/lens)$(item)Lentille de Divination/$ montrera combien de $(#b38ef3)Média/$ est contenu dans l'$(l:greatwork/impetus)$(item)Impetus/$, en équivalent de poussière.", + "4": "Miracle parmi les miracles, le cercle ne consommera ni le $(#b38ef3)Média/$ de mon inventaire ni de mon esprit. A la place, des éclats cristallisés de $(#b38ef3)Média/$ doivent être fournis à l'$(l:greatwork/impetus)$(item)Impetus/$ via un entonnoir, ou des méthodes similaires.$(br2)L'utilisation d'une $(l:items/lens)$(item)Lentille Divinatoire/$ montrera combien de $(#b38ef3)Média/$ est contenu dans l'$(l:greatwork/impetus)$(item)Impetus/$, en équivalent de poussière.", "7": "J'ai aussi trouvé un croquis d'un Cercle de Sorts utilisé par les anciens enfoui quelque part dans mes notes . Sur l'autre page se trouve ma copie (bien que de piètre qualité) de celui-ci .$(br2)Les runes là-dessus auraient été éxécutées dans le sens inverse des aiguilles d'une montre, en commençant par le $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ et en se terminant par $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Téléportation Supérieure/$.", + "teleport_circle.title": "Cercle de Téléportation", + "1": "Je SAIS à quoi servent les $(l:items/slate)$(item)ardoises/$. Les grands assemblages perdus au cours du temps. Les runes inscrites sur elles peuvent être activées en suivant une séquence, automatiquement. Pouvoir et pensées se répercutent au travers, une par une par une par une par une au travers et au travers et AU TRAVERS ET -- Je ne dois pas je ne dois pas je devrais savoir qu'il ne faut pas penser comme ça.", + "3": "Le résultat, c'est que les bordures du \"Cercle\" Runique peuvent être de n'importe quelle forme, concave ou convexe, et peuvent être orientées dans n'importe quel sens. En fait, avec l'aide de certains blocs, il est possible de réaliser un Cercle Runique qui s'étend sur trois dimensions. Je doute qu'une telle bizarrerie soit particulièrement utile, mais je dois m'autoriser un peu de légèreté futile pour encourager mon vulgaire esprit à continuer son travail.", + "5": "Cependant, un sort créé par un cercle a une limitation majeure : Il ne peut rien affecter qui soit en dehors des bordures du cercle. Ainsi, il ne peut rien affecter qui serait en dehors du cube qui contient strictement tous les blocs composant le cercle (donc un Cercle Runique concave peut affecter les choses qui se trouvent dans sa concavité).", + "6": "Il y a aussi une limite dans le nombre de blocs que la vague peut traverser avant de s'étioler, mais ce nombre est assez grand pour que je doute avoir le moindre problème.$(br2)À l'inverse, il y a aussi certaines actions qui ne peuvent être utilisées que depuis un cercle. Heureusement, aucune d'entre elles ne sont mes sorts ; Il semblerait qu'elles n'aient à faire qu'avec les composants du cercle lui-même. Mes notes à ce sujet se trouvent $(l:patterns/circle)ici/$.", }, impetus: { "1": "La fluctuation de $(#b38ef3)Média/$ nécessaire pour activer un Cercle de Sorts est complexe. Même les mortels avec les yeux les plus aiguisés et les mains les plus agiles ne pourrait pas servir d'$(l:greatwork/impetus)$(item)Impetus/$ et tisser le $(#b38ef3)Média/$ en l'ouroboros auto-suffisant nécessaire.$(br2)Le problème c'est que l'esprit est trop rempli d'autres $(italics)pensées parasites/$ inutiles.", + "3": "Il y a plusieurs solutions à cette énigme : en utilisant des techniques de méditation il est possible d'apprendre à vider son esprit, même si je ne suis pas sûr qu'un esprit suffisamment vide pour activer un Cercle peut se concentrer assez fort pour mener la tâche à bien. $(br2)Certaines substances douteuses peuvent créer un effet similaire, mais je ne sais rien sur elles et je n'ai pas l'intention d'apprendre. Je ne peux pas compter sur les procédés chimiques de mon cerveau.", + "4": "La solution que je compte utiliser donc, c'est spécialiser une psyché. Je vais la libérer de la tyrannie des nerfs, couper toutes ses sorties à part quelques délicats appareils de manipulation de $(#b38ef3)Média/$, cautériser toutes ses entrées mais le signal pour commencer son travail. $(br2)Le processus de $(l:greatwork/brainsweeping)$(action)transfusion de psyché/$ dont je suis maintenant intimement familier fera parfaitement l'affaire ; l'esprit d'un villageois est suffisamment complexe pour faire le travail, mais pas assez pour résister l'information.", + impetus_look: "Un $(l:greatwork/impetus)$(item)Impetus de Fléchier/$ s'active après avoir été observé pendant un temps.", + "2": "Sur un... plan métaphysique -- Je dois faire attention avec ce genre de pensées, je ne dois pas me perdre, je suis devenu trop précieux -- déplacer le $(media)média/$ déplace l'esprit, et l'esprit doit être déplacé pour que le processus fonctionne. Mais l'esprit est trop $(italic)lourd/$ avec toutes ses pensées pour se déplacer avec assez d'agilité.$(br2)C'est comme si un artisan tentait de réparer une montre avec des moufles.", + empty_impetus: "Premièrement, le berceau. Bien que cela ne remplace pas $(l:greatwork/impetus)$(item)Impetus/$, le flot de $(media)média/$ dans un cercle ne sortira que par le côté pointé par les flèches. Cela me permet de changer le plan dans lequel le flot s'écoule, par exemple.", + impetus_rightclick: "Maintenant, pour transposer l'esprit. Les Villageois de différentes professions tendront à modifier les conditions d'activation de l'$(l:greatwork/impetus)$(item)Impetus/$ qui en résulte. Un $(l:greatwork/impetus)$(item)Impetus de Forgeron/$ s'activera simplement avec $(k:use).", + impetus_storedplayer: { + "1": "Un $(l:greatwork/impetus)$(item)Impetus de Clerc/$ s'activera en recevant un signal de redstone. Il peut être lié à un joueur avec un objet qui contiendrait une telle référence, comme un $(l:items/focus)$(item)Focus/$, en l'utilisant sur le bloc.", + "2": "D'une manière propre à cet $(l:greatwork/impetus)$(item)Impetus/$, le joueur lié, ainsi qu'une petite zone autour de lui, sont toujours atteignables par le Cercle Runique. C'est un peu comme s'ils se tenaient dans l'enceinte du cercle, peu importe à quel point ils sont éloignés.$(br2)Le joueur lié est indiqué en regardant l'$(l:greatwork/impetus)$(item)Impetus du Clerc/$ avec une $(l:items/lens)$(item)Lentille Divinatoire/$.", + }, }, casting: { iotas: { - "3": "Généralement, je fournis des iotas à des actions. Par exemple, prenons $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. Ce Sort nécessite un iota numérique, pour indiquer sa force, et un iota vectoriel, pour indiquer sa position.$(br2)Ou alors, prenons $(l:patterns/basic#hexcasting:get_pos)$(action)Purification de la Boussole/$. Il prend un iota d'entité et le transforme en un iota vectoriel, qui représente la position de cette entité.", - "1": "Les \"noms\" dans la langue de Mère Nature sont appelés des $(thing)iotas/$. Au niveau le plus bas, la Sorcellerie est l'art de manipuler les iotas.$(br2)Il existe de nombreuses variétés d'iotas:$(li)Les Nombres (que certaines légendes appelent \"doubles\").$(li)Les Vecteurs, une collection de trois nombres qui représentent une position, un mouvement ou une direction.$(li)Les Booléens ou juste \"bool\" pour faire court, qui représentent un Vrai ou un Faux abstrait.$(li)Les Entités, comme moi-même, les poulets et les wagons.", + "3": "Généralement, je fournis des Iotas à des Actions. Par exemple, prenons $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. Ce Sort nécessite un Iota numérique, pour indiquer sa force, et un Iota vectoriel, pour indiquer sa position.$(br2)Ou alors, prenons $(l:patterns/basic#hexcasting:get_pos)$(action)Purification de la Boussole/$. Il prend un Iota d'Entité et le transforme en un Iota vectoriel, qui représente la position de cette entité.", + "1": "Les \"noms\" dans la langue de Mère Nature sont appelés des $(thing)Iotas/$. Au niveau le plus bas, la Sorcellerie est l'art de manipuler les Iotas.$(br2)Il existe de nombreuses variétés d'Iotas:$(li)Les Nombres (que certaines légendes appelent \"doubles\").$(li)Les Vecteurs, une collection de trois nombres qui représentent une position, un mouvement ou une direction.$(li)Les Booléens ou juste \"bool\" pour faire court, qui représentent un Vrai ou un Faux abstrait.$(li)Les Entités, comme moi-même, les poulets et les wagons.", + "2": "$(li)Les Influences, des Iotas qui représentent des idées abstraites variées comme l'absence de données ($(thing)Null/$) ou du 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.", }, grid: { - "1": "Je fournis généralement mes runes à Mère Nature grâce à mon $(l:items/staff)$(item)Sceptre/$ . Quand j'appuie sur $(thing)$(k:use)/$ avec un Sceptre dans l'une de mes mains une grille hexagonale de petits points apparait devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour tracer et relâcher pour terminer de dessiner mes runes . $(br2) Une fois la rune relâchée, elle est exécutée (voir chapitre suivant) .", - "2": "Appuyer sur $(thing)$(k:escape)/$ enregistre et ferme la grille ; lorsque j'utilise mon Sceptre à nouveau, toutes mes runes et tous mes iotas y seront toujours. $(br2) Si je souhaite reprendre mon sortilège de zéro, je peux réinitialiser ma grille en m'accroupissant lors de son ouverture.", + "1": "Je fournis généralement mes Runes à Mère Nature grâce à mon $(l:items/staff)$(item)Sceptre/$ . Quand j'appuie sur $(thing)$(k:use)/$ avec un Sceptre dans l'une de mes mains une Grille hexagonale de petits points apparait devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour tracer et relâcher pour terminer de dessiner mes Runes . $(br2) Une fois la Rune relâchée, elle est exécutée (voir chapitre suivant) .", + "2": "Appuyer sur $(thing)$(k:escape)/$ enregistre et ferme la Grille ; lorsque j'utilise mon Sceptre à nouveau, toutes mes Runes et tous mes Iotas y seront toujours. $(br2) Si je souhaite reprendre mon Sortilège de zéro, je peux réinitialiser ma Grille en m'accroupissant lors de son ouverture.", }, "patterns&actions": { - "1": "Les $(thing)Runes/$ sont des chemins tracés dans la grille de $(#b38ef3)Média/$. Je pense que la géométrie à six côtés caractéristique de mon art doit être ce qui lui a donné son nom : l'Ésométrie... ou l'Isotérie... ? Laisse tomber, appelons ça juste Sorcellerie... Sobre, concis, approprié. $(br2)$Toujours est-il que ces Runes $(italic)produisent/$ des $(thing)Actions.", - "2": "La subtilité est similaire à celle qui distingue les $(italic)mots/$ de leur $(italic)signification/$. N'importe quel mélange aléatoire de lettres forme un mot, mais la plupart d'entre eux (comme \"xnopyt\") ne veulent rien dire. Pareillement, n'importe quel gribouillage tracé maladroitement dans le $(#b38ef3)Média/$ est $(italic)techniquement/$ une Rune, mais la plupart d'entre eux ne feront rien.", - "3": "Les Actions sont un peu comme des commandes pour les grand systèmes qui gouvernent l'univers (que j'ai vu de nombreux textes personifier en \"Mère Nature.\"). En général, elles font une des choses suivantes:$(li)Rassembler des informations sur le monde, comme la position d'une entité.$(li)Manipuler l'information rassemblée, comme trouver la distance entre deux positions.$(li)Déclencher un effet magique sur le monde, comme invoquer la foudre ou une explosion.$(br)Ces Actions là à la fin sont appelées \"Sorts\", et sont souvent ce qui attirent les gens vers cette discipline.", + "1": "Les $(thing)Runes/$ sont des chemins tracés dans la Grille de $(#b38ef3)Média/$. Je pense que la géométrie à six côtés caractéristique de mon art doit être ce qui lui a donné son nom : l'Ésométrie... ou l'Isotérie... ? Laisse tomber, appelons ça juste Sorcellerie... Sobre, concis, approprié. $(br2)$Toujours est-il que ces Runes $(italic)produisent/$ des $(thing)Actions.", + "2": "La subtilité est similaire à celle qui distingue les $(italic)mots/$ de leur $(italic)signification/$. N'importe quel mélange aléatoire de lettres forme un mot, mais la plupart d'entre eux (comme \"xnopyt\") ne veulent rien dire. Pareillement, n'importe quel gribouillage tracé maladroitement dans le $(#b38ef3)Média/$ est $(italic)techniquement/$ une Rune, mais la plupart d'entre elles ne feront rien.", + "3": "Les Actions sont un peu comme des commandes pour les grand systèmes qui gouvernent l'univers (que j'ai vu de nombreux textes personifier en \"Mère Nature.\"). En général, elles font une des choses suivantes:$(li)Rassembler des informations sur le monde, comme la position d'une Entité.$(li)Manipuler l'information rassemblée, comme trouver la distance entre deux positions.$(li)Déclencher un effet magique sur le monde, comme invoquer la foudre ou une explosion.$(br)Ces Actions là à la fin sont appelées \"Sorts\", et sont souvent ce qui attirent les gens vers cette discipline.", "4": "Un $(#b38ef3)Sortilège/$, donc, est une séquence de Runes valides présentées à Mère Nature. Mère Nature les interpète une par une et si Elle comprend mon intention, elle change le monde en suivant ma volonté. (Ou du moins ce qu'elle pense être ma volonté)", - "5": "Même si certaines Actions peuvent être exécutées facilement, d'autres demandent un sacrifice sous la forme de Média cristallisé. Je pense que le concentré d'énergie psychique est présenté comme un argument à Mère Nature, pour la convaincre de faire ce que je lui demande. La majorité des Sorts requierent ce paiement mais certaines Actions normales l'exigent aussi.$(br2)J'ai archivé leur coût, si applicable, sur leurs pages respectives.", + "5": "Même si certaines Actions peuvent être exécutées facilement, d'autres demandent un sacrifice sous forme de Média cristallisé. Je pense que le concentré d'énergie psychique est présenté comme un argument à Mère Nature, pour la convaincre de faire ce que je lui demande. La majorité des Sorts requièrent ce paiement mais certaines Actions normales l'exigent aussi.$(br2)J'ai archivé leur coût, si applicable, sur leurs pages respectives.", + }, + overview: { + "1": "Je pense qu'il est toujours bon de démarrer du bon pied. Donc, j'ai compilé les Runes qui m'aideront à faire un $(#b38ef3)Sortilège/$ qui causera une modeste explosion à l'endroit où mon regard se pose. J'imagine qu'examiner le fonctionnement de ce $(#b38ef3)Sortilège/$ me sera un bon exercice.", }, }, vectors: { - "9": "Diviser un vecteur par sa propre longueur produit un vecteur unitaire, qui a la même direction que l'original mais une longueur d'exactement 1. C'est parfois utile si la direction du vecteur est la seule chose qui nous importe. Ils sont également bien pratiques dans le cas où je multiplie un vecteur unitaire par un nombre pour avoir un nouveau vecteur avec exactement la même longueur.$(br2) Beaucoup de runes qui calculent une direction quelconque, comme la $(l:patterns/basics#hexcasting:get_entity_look)Purification d'Alidade/$, fournissent un vecteur unitaire.", - "10": "Toutes les opérations décrites jusque là, et plusieurs autres, peuvent être réalisées en utilisant des Runes trouvées dans la section $(l:patterns/math)Mathématiques/$.$(br2)Je peux créer de nouveaux vecteurs en récupérant des informations d'entités en utilisant des $(l:patterns/basics)Runes Basiques/$, des $(l:patterns/consts)Constantes/$ pour créer des vecteurs unitaires pour des directions basiques, ou directement en combinant trois nombres avec l'$(l:patterns/math#hexcasting:construct_vec)Exaltation Vectorielle/$.", + "9": "Diviser un Vecteur par sa propre longueur produit un Vecteur unitaire, qui a la même direction que l'original mais une longueur d'exactement 1. C'est parfois utile si la direction du Vecteur est la seule chose qui nous importe. Ils sont également bien pratiques dans le cas où je multiplie un Vecteur unitaire par un nombre pour avoir un nouveau vecteur avec exactement la même longueur.$(br2) Beaucoup de runes qui calculent une direction quelconque, comme la $(l:patterns/basics#hexcasting:get_entity_look)Purification d'Alidade/$, fournissent un Vecteur unitaire.", + "10": "Toutes les opérations décrites jusque là, et plusieurs autres, peuvent être réalisées en utilisant des Runes trouvées dans la section $(l:patterns/math)Mathématiques/$.$(br2)Je peux créer de nouveaux Vecteurs en récupérant des informations d'Entités en utilisant des $(l:patterns/basics)Runes Basiques/$, des $(l:patterns/consts)Constantes/$ pour créer des Vecteurs unitaires pour des directions basiques, ou directement en combinant trois Nombres avec l'$(l:patterns/math#hexcasting:construct_vec)Exaltation Vectorielle/$.", + "1": "Il semblerait que j'ai besoin maîtriser les Vecteurs si je veux progresser dans mes études. Un Vecteur est un ensemble de trois nombres qui peuvent être utilisés pour représenter une variété de choses, généralement une position dans le monde, un décalage d'une position à une autre ou une direction dans l'espace. Les pages suivantes offrent un résumé simple de comment fonctionnent les Vecteurs et ce que je peux faire avec eux.", + "2": "Tous les Vecteurs avec lesquels je vais devoir composer en tant qu'$(hex)Ensorceleur/$ sont en trois dimensions, puisque le monde dans lequel je vis possède également trois dimensions.$(br2)Chaque Vecteur a un composant X, Y et Z, dans cet ordre précis, correspondant aux trois coordonnées des axes de ce monde : L'axe X va de l'est à l'ouest, l'axe Y du haut vers le bas et l'axe Z, du nord vers le sud.", + "3": "Le moyen le plus simple d'utiliser un Vecteur est en tant que $(o)position/$, représentant un point fixe dans le monde - cela peut être la position d'un bloc, d'une entité ou même un endroit vide que je souhaiterais cibler avec un sort.$(br2)Un Vecteur de position est concrètement un ensemble de coordonnées pointant la position exacte de ce à quoi il réfère. Cependant, tous les Vecteurs ne représentent pas des positions.", + "4": "Si j'ai un Vecteur qui représente la position d'un bloc et que je souhaite cibler le bloc au-dessus de lui, je dois augmenter la composante Y de mon Vecteur de 1. Je peux faire cela en prenant un second Vecteur de valeur (0, 1, 0) et en l'ajoutant au premier. De la même façon, si je souhaite cibler quelque chose se trouvant à deux blocs vers l'est, je pourrais ajouter un second Vecteur de valeur (2, 0, 0). Ces deux nouveaux Vecteurs représentent un $(o)décalage/$ d'une position à une nouvelle position.", + "5": "Il est à noter que même si les Vecteurs de position et ceux de décalage représentent des concepts différents, il n'y a pas de différence fondamentale entre eux - tous les Vecteurs sont simplement un ensemble de nombres. Dans les faits, je pourrais même considérer que tous mes Vecteurs sont d'un type ou d'un autre selon mes envies : une position n'est après tout qu'un décalage depuis l'origine du monde, et un décalage n'est qu'une position relative à un point de départ arbitraire.", + "6": "Les Vecteurs possèdent deux caractéristiques importantes : La magnitude (ou longueur) et sa direction (ou orientation). En considérant un Vecteur comme un déplacement, la magnitude serait la distance parcourue et sa direction le sens du déplacement.", + "7": "Il y a plusieurs méthodes pour manipuler des Vecteurs. Comme décrit précédemment, je peux les additionner, ce qui additionne les composantes X, Y et Z respectives des deux Vecteurs. Il en va de même pour la soustraction - à noter que soustraire un Vecteur de position à un autre résultera exactement en le Vecteur de décalage nécessaire pour me déplacer de la première position à la seconde.$(br2)Multiplier et diviser deux Vecteurs n'est pas aussi simple. Je peux trouver plus d'informations à ce sujet $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)here/$ and $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)ici/$.", + "8": "Je peux aussi multiplier ou diviser un Vecteur par un Nombre pour le $(o)redimensionner/$. Cela multipliera ou divisera les trois composants du Vecteur par ce nombre.$(br2)Tant que le Nombre est positif, cela modifiera la longueur du Vecteur sans affecter son orientation. Si le Nombre est négatif, la longueur sera affectée de la même manière, mais l'orientation sera totalement inversée.", + "11": "Pour comprendre les concepts les plus avancés sur les Vecteurs, il serait sage d'effectuer des recherches plus poussées que ce que contient mon carnet. La vidéo ci-dessous peut me servir de référence.", + "11.link_text": "3blue1brown", }, basics_pattern: { raycast: { - "2": "S'il ne trouve pas de cible, les vecteurs se combineront en $(thing)Null/$ . $(br2)Une séquence familière de runes, connue sous le nom de \"Formule du Rayon Cible\", est $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Purification de l'Alidade/$, $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$. Ensembles, ils renvoient la position du bloc que je regarde sous forme de vecteur.", + "2": "S'il ne trouve pas de cible, les Vecteurs se combineront en $(thing)Null/$ . $(br2)Une séquence familière de Runes, connue sous le nom de \"Formule du Rayon Cible\", est $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Purification de l'Alidade/$, $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$. Ensembles, ils renvoient la position du bloc que je regarde sous forme de Vecteur.", + "1": "Combine deux Vecteurs (une position et une direction) en la réponse à la question : Si je me tiens à cette position et que je regarde dans cette direction, quel bloc serais-je en train d'observer ? Coûte une quantité négligeable de $(media)Média/$.", }, "raycast/axis": { - "1": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place un vecteur répondant à la question : Quel $(italic)côté/$ du bloc je regarde ? Coûte une quantité négligeable de $(media)Média/$.", + "1": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place un Vecteur répondant à la question : Quel $(italic)côté/$ du bloc je regarde ? Coûte une quantité négligeable de $(media)Média/$.", + "2": "Plus spécifiquement, cela retourne un $(italic)vecteur normal/$ de la face ciblée, ou un vecteur unitaire perpendiculaire à cette face.$(li)Si je regarde le sol, cela me retournera (0, 1, 0).$(li)Si je regarde à la face sud d'un bloc, cela me retournera (0, 0, 1).", }, "raycast/entity": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place $(italic)l'entité/$ que je regarde. Coûte une quantité négligeable de $(media)Média/$.", + get_entity_look: "Transforme une entité dans la Stack en la direction qu'elle est en train de regarder, sous la forme d'un Vecteur unitaire.", + get_caster: "M'ajoute moi, l'ensorceleur, sur la Stack.", + "entity_pos/eye": "Transforme une Entité sur la Stack en la position de ses yeux. Je devrais l'utiliser sur moi-même.", + "entity_pos/foot": "Transforme une Entité sur la Stack en la position de ses pieds. Je devrais l'utiliser sur les autres Entités.", + print: "Me révèle l'Iota au sommet de la Stack.", + get_entity_height: "Transforme un Entité dans la Stack en sa taille.", + get_entity_velocity: "Transforme une Entité dans la Stack en la direction dans laquelle elle se déplace, avec la vitesse de ce déplacement comme magnitude..", + get_media: "Pousse la quantité de $(#b38ef3)Média/$ disponible pour le Sortilège actuel, en unités de $(l:items/amethyst)$(item)poussière d'améthyste/$.", }, interop: { gravity: { set: "Définit la direction principale de la gravité affectant l'entité. Le vecteur donné sera contraint par l'axe le plus proche, comme avec $(l:patterns/math#hexcasting:coerce_axial)$(action)Purification Axiale/$. Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", + get: "Récupère la direction principale de l'attraction gravitationnelle affectant l'entité, sous la forme d'un vecteur unitaire. Pour la majorité des entités, cela sera le bas (0, -1, 0).", + "1": "J'ai découvert des actions qui permettent de définir ou de récupérer la gravité affectant une entité. Je les trouve vraiment intéressantes, si ce n'est un peu nauséeuses.$(br2)Surprenamment, alors que les sorts de $(l:patterns/spells/flight)$(action)Vol/$ sont limités en portée ou en durée, et malgré les similarités avec la manipulation gravitationnelle, ceux-ci ne sont pas limités de la même façon. Ca me laisse perplexe de pourquoi... Peut-être que la développeuse du mod voulait que les joueurs s'amusent, pour une fois.", + }, + pehkui: { + set: "Définit la taille de l'entité, en proportion de sa taille normale. Coûte environ un $(item)Éclat d'Améthyste/$.", + get: "Récupère la taille d'une entité, en proportion de sa taille normale. Pour la majorité des entités, ce sera 1 (taille normale).", + "1": "J'ai découvert des méthodes pour changer la taille des entités, mais aussi pour savoir à quel point elles sont plus grandes ou petites que la normale.", }, + "3": "Enfin, si je me prends d'intérêt pour l'Histoire et les contes de ce monde, je ne pense pas qu'une note compilée en examinant ces interactions devrait être considérée comme plus que de légères broutilles.", + "2": "Je devrais gardedr en tête, néanmoins, que Mère Nature a fait moins attention en créant cette partie de l'art ; il faut s'attendre à d'étranges comportements et des bugs. Je suis sûr que la développeuse du mod fera de son mieux pour les corriger mais je dois bien garder en tête qu'ils sont un passe-temps frivole à ses yeux.$(br2)Je vais aussi sûrement trouver des problèmes d'équilibrages dans les coûts et effets des pouvoirs cross-mods. Dans ce cas, j'imagine que c'est à moi de faire preuve de responsabilité et de ne pas les exploiter.", + "1": "L'art de la Sorcellerie est versatile. Si je trouve que le monde a été $(italic)modifié/$ par certains pouvoirs il est alors possible d'utiliser la Sorcellerie en harmonie avec ces modifications.", }, abacus: { "1": "Malgré l'existence de $(l:patterns/numbers)$(action)runes pour dessiner des nombres/$, je les trouve, disons ... pénibles, pour ne pas dire davantage . $(br2)Bienheureusement, les antiques maîtres de cet art ont inventé un appareil particulièrement ingénieux qu'ils appelaient un $(l:items/abacus)$(item)Abaque/$ qui fournit des nombres à ma sorcellerie . Je le règle simplement au nombre que je désire, puis je lis sa valeur en lançant $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, exactement comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$ ou un $(l:items/focus)$(item)Focus/$ .", + "crafting.desc": "$(italic)Les mathématiques ? C'est pour les crânes d'oeuf !/$", + "2": "Pour en utiliser un, il suffit que je le tienne, que je m'accroupisse et que je défile avec ma souris. S'il est dans ma main principale, le nombre sera incrémenté (ou décrémenté) de 1, ou 10 si je suis aussi en train d'appuyer sur $(k:sprint). Dans mon autre main, à l'inverse, le nombre sera changé de 0.1, ou 0.001 si j'appuie sur $(k:sprint).$(br2)Je peux aussi secouer l'Abaque pour le remettre à zéro en faisant un clic droit en étant accroupi.", }, readwrite: { "read/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, mais l'iota est lu depuis une entité plutôt que depuis l'objet dans mon autre main .", @@ -801,66 +873,166 @@ "write/entity": "Similaire au $(l:patterns/readwrite#hexcasting:read)$(action)Gambit du Scribe/$, mais l'iota est écrit dans une entité au lieu de l'objet dans mon autre main.$(br2)Détail intéressant à noter, il semblerait que je ne puisse pas écrire mon Vrai Nom en utilisant ce sort. J'ai l'intuition que cela aurait pu être dangereux si c'était possible.", local: "Les objets ne sont pas les seuls endroits où je peux stocker des informations. Je peux également stocker des informations dans le $(#b38ef3)Média/$ du $(#b38ef3)Sortilège/$ lui-même, comme avec la stack, mais séparément. Les textes en parlent sous le nom d'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$. Il ne contient qu'un seul iota, comme le ferait un $(l:items/focus)$(item)Focus/$, et comme lui commence avec la valeur $(thing)Null/$. Il est préservé entre les iterations du $(l:patterns/meta#hexcasting:for_each)$(action)Gambit de Thoth/$, mais ne dure que le temps du $(#b38ef3)Sortilège/$ dont il fait partie. Lorsque je finis de concevoir mon $(#b38ef3)Sortilège/$, la valeur sera perdue.", "read/local": "Copie l'iota présent dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, que je viens surement d'écrire avec le $(l:patterns/readwrite#hexcasting:write/local)$(action)Gambit d'Huginn/$.", + "1": "Cette section traite du stockage des $(thing)Iotas/$ dans des médiums plus permanents. Quasiment n'importe quel iota peut être stocké dans un objet approprié, comme un $(l:items/focus)$(item)Focus/$ ou un $(l:items/spellbook)$(item)Livre de Sorts/$, puis relu plus tard. Certain objets, comme l'$(l:items/abacus)$(item)Abaque/$, ne peuvent qu'être lus.$(br2)Les iotas sont généralement lus et écrits depuis l'autre main, mais il est aussi possible de le faire avec un objet laissé sur le sol en tant qu'entité objet, ou quand il est dans un cadre.", + "2": "Il existe peut-être d'autres entités avec lesquelles je peux interagir de cette façon. Par exemple, un $(l:items/scroll)$(item)Parchemin/$ suspendu à un mur permet de lire la rune inscrite dessus.$(br2)Cependant, il semblerait que je sois incapable de sauvegarder la référence d'un autre joueur, seulement la mienne. Je suppose que la référence à une entité est similaire à l'idée d'un Vrai Nom ; peut-être que Mère-Nature nous aide à garder nos Vrais Noms hors de mains mal intentionnées. Si je souhaite qu'un ami possède mon Vrai Nom, je peux créer un $(l:items/focus)$(item)Focus/$ et le lui offrir.", + read: "Copie l'iota stocké dans l'objet de mon autre main et l'ajoute à la stack.", + write: "Supprime l'iota de la stack et le sauvegarde dans l'objet que je tiens dans mon autre main.", + readable: "Si l'objet dans mon autre main contient un iota que je peux lire, renvoie Vrai. Sinon, renvoie Faux.", + writable: "Si je peux sauvegarder un iota dans l'objet de mon autre main, renvoie Vrai. Sinon, renvoie Faux.", + "local.title": "L'esprit de Corvus", + "write/local": "Supprime l'iota de la stack, et le sauvegarde dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, le stockant jusqu'à ce que j'arrête de concevoir le $(hex)Sortilège/$.", }, start_to_see: { "1": "Les textes ne mentaient pas. Mère Nature a pris son dû.", - "2": "Ç... Ça...$(p)...c'était l'une des $(italic)pires/$ choses que j'ai $(italic)jamais/$ vécu. J'ai offert mon plan à Mère Nature, elle m'a rendu un sourire imperturbable et une sensation de déchirure en retour-- une partie de moi se faisait balayer comme de la poussière d'Améthyste dans le vent.$(p) J'ai déjà de la chance d'avoir $(italic)survécu/$ alors avoir la lucidité nécessaire pour écrire ces mots-- Je dois déclarer cette affaire classée et vérifier plus attentivement avant de lancer plus de $(#b38ef3)Sortilèges/$. Je ne referai jamais une telle erreur.", + "2": "Ç... Ça...$(p)...c'était l'une des $(italic)pires/$ choses que j'ai $(italic)jamais/$ vécu. J'ai offert mon plan à Mère Nature, elle m'a rendu un sourire imperturbable et une sensation de déchirure en retour-- une partie de moi se faisait balayer comme de la poussière d'améthyste dans le vent.$(p) J'ai déjà de la chance d'avoir $(italic)survécu/$ alors avoir la lucidité nécessaire pour écrire ces mots-- Je dois déclarer cette affaire classée et vérifier plus attentivement avant de lancer plus de $(#b38ef3)Sortilèges/$. Je ne referai jamais une telle erreur.", + "3": "... Mais. $(br2)Mais pour un bref instant, cette partie de moi... elle a $(italic)vu/$... $(l:greatwork/the_work)$(thing)quelque chose/$. Un endroit-- un modèle peut-être ? (De telles distinctions n'ont pas l'air de compter quand on parle de... ça.)$(p)Et une... une membrane-barrière-peau-frontière, qui me séparait d'un royaume de pure imagination-flux-lumière-énergie.Je me souviens-- J'ai vu- j'ai pensé- je me suis souvenu- j'ai ressenti-- la barrière se flouter sur les bords, juste un tout petit peu.$(p)Je voulais la $(italic)traverser./$", + "4": "Je ne devrais pas. Je $(italic)sais/$ que je ne devrais pas. C'est dangereux. Trop dangereux. La force requise... J'aurais besoin de m'amener aux portes de la Mort elle-même en un $(italic)seul dessin/$. $(br2)Mais je suis. Si. $(italic)Proche du But/$. $(p)$(italic)Ceci/$est la culmination de mon art. C'est l'$(#54398a)Illumination/$que je cherchais à atteindre. $(br2)Je veux aller plus loin. J'ai besoin de le revoir. Je $(italic)vais/$ le revoir. $(p)Ai-je vraiment peur de perdre mon âme de mortel si je gagne une gloire immortelle en retour ?", }, whats_a_hex: { - "2": "En général, cela prend la forme d'une liste d'iotas de rune, créée par les techniques décrites dans $(l:patterns/patterns_as_iotas)Runes d'Échappement/$. Avec mon $(#b38ef3)Sortilège/$ placé ainsi dans la stack, je peux le lancer en utilisant des runes de meta-évaluation comme le $(l:patterns/meta#hexcasting:eval)Gambit d'Hermes/$, ou infuser cela dans un $(l:items/hexcasting)Catalyseur de Sortilèges/$ pour être réutilisé facilement.$(br2)À noter que cette liste n'est pas différente de n'importe quel iota de liste - Je peux la manipuler, la sauvegarder dans des $(l:items/focus)stockages/$ $(l:items/thought_knot)permanents/$, ou même l'incorporer dans un autre $(#b38ef3)Sortilège/$.", + "2": "En général, cela prend la forme d'une Liste d'Iotas de Rune, créée par les techniques décrites dans $(l:patterns/patterns_as_iotas)Runes d'Échappement/$. Avec mon $(#b38ef3)Sortilège/$ placé ainsi dans la Stack, je peux le lancer en utilisant des Runes de meta-évaluation comme le $(l:patterns/meta#hexcasting:eval)Gambit d'Hermes/$, ou infuser cela dans un $(l:items/hexcasting)Catalyseur de Sortilèges/$ pour être réutilisé facilement.$(br2)À noter que cette Liste n'est pas différente de n'importe quel Iota de Liste - Je peux la manipuler, la sauvegarder dans des $(l:items/focus)objets de stockage/$ peut-être de manière $(l:items/thought_knot)permanente/$, ou même l'incorporer dans un autre $(#b38ef3)Sortilège/$.", + "1": "De base, un $(#b38ef3)Sortilège/$ est exactement comme décrit dans $(l:casting/101)Initiation à la Sorcellerie/$ : une séquence d'actions, faites en général avec pour but d'effectuer un quelconque effet sur le monde avec un ou plusieurs sorts.$(br2) Cette idée d'un $(#b38ef3)Sortilège/$ fonctionne bien pour de la concevoir sur le tas, mais si je souhaite archiver mon travail pour la gloire (ou juste réutiliser ce que j'ai déjà fait) j'aurai besoin de quelque chose de plus concret.", + "3": "Notons aussi que cette Liste n'a pas besoin d'être uniquement composées d'Iotas de Rune. Insérer des Iotas d'autres types dans mes $(#b38ef3)Sortilèges/$ finissent rarement bien, mais $(l:patterns/patterns_as_iotas#iota_embedding)certaines techniques/$ me permettent de le faire en toute sécurité. De plus, certains $(l:patterns/meta#hexcasting:eval/cc)Iotas spéciaux/$ peuvent être évalués directement comme n'importe quelle Rune.$(br2) Ceci dit, $(o)n'importe quelle/$ Liste d'Iotas peut techniquement compter comme un sortilège - - le seul prérequis étant de parvenir à la lancer.", }, focus: { "1": "Un $(item)Focus/$ est comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$, dans le sens qu'un iota peut être écrit ou lu depuis. Cependant, l'avantage d'un Focus est qu'il est $(italic)réutilisable/$. Si je fais une erreur avec l'iota que j'écris dans un $(item)Focus/$, je peux simplement lancer le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ une nouvelle fois et écrire par-dessus l'iota présent à l'intérieur.", "2": "Si je souhaite protéger un $(l:items/focus)$(item)Focus/$ d'une réécriture accidentelle, je peux le sceller avec de la cire en le plaçant dans un craft avec $(item)Rayon de miel/$. Essayer d'utiliser le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ sur un Focus scellé échouera.$(br2)$(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Suppression de Catalyseur/$ retirera à la fois le sceau et le contenu du Focus.", + "3": "Effectivement, le seul avantage que mes $(l:items/thought_knot)$(item)Nœuds-Pensée/$ ont sur les $(item)Foci/$ est que les $(item)Foci/$ sont largement plus cher à produire. Mes recherches indiquent que les premiers adeptes de cet art utilisaient exclusivement des $(item)Foci/$, alors que le $(l:items/thought_knot)$(item)Nœud-Pensée/$ est une création originale de ma part.$(br2)Peu importe qui était cet ancien peuple, il devait être très prospère.", + "crafting.desc": "$(italic)Pommes empoisonnées, vers empoisonnés./$", }, spellbook: { "2": "Comme pour les $(l:items/focus)$(item)Focus/$, il existe une méthode simple pour éviter des réécritures accidentelles. Placer le livre dans un craft avec un $(item)Rayon de miel/$ protègera la page actuelle, empêchant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ de modifier son contenu. Tout comme un $(l:items/focus)$(item)Focus/$, utiliser $(l:patterns/spells/hexcasting#hexcasting:erase)$(action)Suppression de Catalyseur/$ retirera la protection avec le contenu de la page.$(br2)Je peux aussi nommer chaque page individuellement avec une enclume. Nommer le livre ne changera que le nom de la page actuellement sélectionnée, pour une navigation facilitée.", + "1": "Le $(l:items/spellbook)$(item)Livre de Sorts/$ est le summum de mon art -- c'est comme une bibliothèque de $(l:items/focus)$(item)Foci/$. Jusqu'à $(thing)soixante-quatre/$ d'entre eux, pour être exact.$(br2)Chaque page peut contenir un unique iota et je peux sélectionner la page active (celle depuis laquelle je peux lire ou écrire un iota) en étant accroupi et en défilant quand je l'ai en main, ou simplement en défilant lorsqu'il est dans mon autre main pendant la conception d'un $(hex)Sortilège/$.", + "crafting.desc": "Les $(italic)Mages/$ adorent les mots. La plupart d'entre eux lisent énormément et un signe évident d'un grand potentiel est l'incapacité à aller dormir sans avoir lu quelque chose avant.", }, scroll: { "1": "Un $(l:items/scroll)$(item)Parchemin/$ est moyen pratique de partager une Rune avec d'autres. Je peux y copier une Rune avec le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$, après quoi cela s'affichera dans une infobulle.$(br2)Je peux aussi les placer sur des murs en décoration ou inspiration, comme je le ferais avec des tableaux, avec une taille allant de 1x1 à 3x3. Utiliser de la $(l:items/amethyst)$(item)Poussière d'Améthyste/$ sur un Parchemin avec une Rune affichera l'ordre des traits.", + "2": "De plus, je peux trouver des $(l:items/scroll)$(item)Parchemins Antiques/$ dans les donjons et les bastions de ce monde. Ils contiennent en eux le tracé des $(thing)Sorts Supérieurs/$, de grandes magies dont la rumeur dit qu'elles seraient trop puissantes pour les mains et l'esprit des mortels...$(br2)Si ces \"mortels\" ne pouvaient pas les utiliser, c'est peut-être qu'ils ne méritaient pas de les connaître.", + "crafting.desc": "$(italic)Sur un parchemin immaculé, avec une plume finement taillée, j'écris dans le sang de mes étudiants pour percer Leurs secrets./$", }, stackmanip: { "pseudo-novice.title": "Gambit du Novice", "pseudo-novice": "Retire le premier iota de la stack.$(br2)Il semblerait que ce soit un cas particulier du $(l:patterns/stackmanip#hexcasting:mask)$(action)Gambit du Comptable/$.", "fisherman/copy": "Similaire au $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Gambit du Pêcheur/$, mais au lieu de déplacer l'iota, le copie.", mask: { - "2": "En considérant que je dessine le Gambit du Comptable de gauche à droite, le nombre d'iotas requis pour cette action sera déterminé par la longueur horizontale de la Rune. La rune prend ces iotas depuis le haut de la pile puis commence à les traiter en commençant par le plus bas d'entre eux. Une ligne plate conservera l'iota alors qu'un triangle incliné vers le bas le supprimera.$(br2)Si ma stack contient $(italic)0, 1, 2/$ (de bas en haut), dessiner la première rune résultera en $(italic)1/$, la seconde résultera en $(italic)0/$ et la troisième résultera en $(italic)0, 2/$ (Le 0 du bas est laissé intact).", + "2": "En considérant que je dessine le Gambit du Comptable de gauche à droite, le nombre d'iotas requis pour cette action sera déterminé par la longueur horizontale de la Rune. La rune prend ces iotas depuis le haut de la Stack puis commence à les traiter en commençant par le plus bas d'entre eux. Une ligne plate conservera l'iota alors qu'un triangle incliné vers le bas le supprimera.$(br2)Si ma Stack contient $(italic)0, 1, 2/$ (de bas en haut), dessiner la première rune résultera en $(italic)1/$, la seconde résultera en $(italic)0/$ et la troisième résultera en $(italic)0, 2/$ (Le 0 du bas est laissé intact).", "1": "Une famille infinie d'actions qui conservent ou suppriment les éléments en haut de la stack, en fonction d'une série de creux et de lignes.", }, + swap: "Échange les deux iotas au sommet de la stack.", + rotate: "Déplace le troisième iota au sommet de la stack. [0, 1, 2] devient alors [1, 2, 0].", + rotate_reverse: "Déplace le iota au sommet de la stack en troisième position. [0, 1, 2] devient alors [2, 0, 1].", + duplicate: "Duplique le iota au sommet de la stack.", + over: "Duplique le second iota et le place au sommet de la stack. [0, 1] devient alors [0, 1, 0].", + tuck: "Copie le premier iota puis le place en troisième position. [0, 1] devient alors [1, 0, 1].", + "2dup": "Copie les deux premiers iotas de la stack. [0, 1] devient alors [0, 1, 0, 1].", + stack_len: "Pousse la taille de la stack sous la forme d'un nombre au sommet de cette dernière. Par exemple, une stack [0, 1] deviendra alors [0, 1, 2].", + duplicate_n: "Supprime le nombre au sommet de la stack, puis crée autant de copie du iota suivant que ce nombre (Si le nombre en question est 2, il n'y aura que deux iotas dans la stack, et non trois).", + fisherman: "Déplace l'élément indexé par le nombre et le ramène au sommet de la stack. Si le nombre est négatif, la rune déplacera à la place l'iota au sommet de la stack vers le bas d'autant que le nombre indiqué.", + swizzle: { + "1": "Réarrange les éléments au sommet de la stack en fonction d'un code numérique qui est l'index de la permutation voulue.", + "2": "Bien que je ne puisse pas prétendre savoir les mathématiques et les calculs derrière le code de la permutation, je suis parvenu à rédiger un graphique exhaustif de ces codes, énumérant toutes les permutations possibles jusqu'à six éléments.$(br2)Si je veux réaliser une étude plus profonde, le mot-clef est \"Lehmer Code\".", + link: "Table des Codes", + }, }, patterns_as_iotas: { runtime_escape: { "2": "Certains trouveront peut-être utile de penser à ça comme \"échapper\" la Rune dans la stack, si jamais il se pourrait qu'ils soient familiers avec la science des ordinateurs.$(br2)L'utilisation la plus commune est de copier la Rune dans un $(l:items/scroll)$(item)Parchemin/$ ou une $(l:items/slate)$(item)Ardoise/$ en utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ et peut-être les utiliser comme décoration.", + "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 $(#b38ef3)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": "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.", + 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.", }, + 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 $(#b38ef3)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.", "eval/cc.1": "Exécute quelque chose d'évaluable de la stack exactement comme le ferait le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$, à l'exception qu'un unique iota \"Saut\" est poussé à la stack au préalable. ", "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.", + "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.", }, mishaps: { - "1": "Malheureusement, je ne suis pas (encore) un être parfait. Je fais des erreurs de temps à autre dans mes études et dans ma conception de $(#b38ef3)Sortilèges/$ ; par exemple, mal dessiner une Rune ou essayer de produire une Action avec les mauvais iotas. Et Mère Nature n'apprécie pas beaucoup mes erreurs-- ce qui cause un $(italic)méchef/$.", + "1": "Malheureusement, je ne suis pas (encore) un être parfait. Je fais des erreurs de temps à autre dans mes études et dans ma conception de $(#b38ef3)Sortilèges/$ ; par exemple, mal dessiner une Rune ou essayer de produire une Action avec les mauvais Iotas. Et Mère Nature n'apprécie pas beaucoup mes erreurs-- ce qui cause un $(italic)Méchef/$.", + "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 $(#b38ef3)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é.", + "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", + not_enough_iotas: "L'Action demandait plus d'Iotas que ceux présent sur la Stack.$(br2)Cause des étincelles gris clair, et autant de $(thing)Déchets/$ que d'Iotas serait nécessaire pour que l'argument soit poussé.", + "stack_size.title": "Trop d'Iotas", + "incorrect_iota.title": "Iota incorrect", + "entity_out_of_range.title": "Entité hors de portée", + "entity_immune.title": "Entité est immunisée", + "math_error.title": "Erreur mathématique", + "incorrect_item.title": "Objet incorrect", + "incorrect_block.title": "Bloc incorrect", + "needs_parens.title": "Absence d'Introspection", + "too_many_patterns.title": "Perdu des mes pensées", + "true_name.title": "Transgresser Autrui", + "disabled.title": "Action interdite", + "other.title": "Echec catastrophique", + stack_size: "J'ai essayé de lancer un Sortilège qui dépasse les limites de la Stack.$(br2) Cause des étincelles noires, et l'entièreté de ma Stack est remplacé par un seul $(thing)Déchet/$.", + incorrect_iota: "L'Action que j'ai exécuté s'attendait a recevoir un Iota d'un certain type comme argument, mais il a reçu quelque chose d'invalide. Si plusieurs Iotas sont invalides, le message d'erreur ne me parlera que de l'erreur au plus profond de la Stack. $(br2) Cause des étincelles gris foncé, et l'Iota invalide sera remplacé par un $(thing)Déchet/$.", + entity_out_of_range: "L'action a tenté d'affecter une entité qui était hors de ma portée.$(br2)Provoque des étincelles roses et les objets dans ma main seront projetés vers l'entité incriminée.", + entity_immune: "L'action a tenté d'affecter une entité qui ne pouvait pas être altérée.$(br2)Provoque des étincelles bleues et les objets dans mes mains seront projetés vers l'entité incriminée.", + math_error: "L'action a tenté d'offenser les lois des mathématiques, par exemple en divisant par zéro.$(br2)Provoque des étincelles rouges, pousse un $(thing)déchet/$ dans ma stack et mon esprit sera puni souillé, me retirant la moitié de la vigueur qu'il me restait. Il semblerait que Mère-Nature se sente personnellement insultée par de telles opérations et décide en retour de $(italic)me/$ diviser.", + incorrect_item: "L'action nécessite certains types d'objets, mais ceux que j'ai fourni ne sont pas adaptés.$(br2)Provoque des étincelles marrons. Si l'objet en question était dans ma main, je serai forcé de le lâcher. S'il était déjà au sol, en tant qu'entité, il sera projeté dans les airs.", + incorrect_block: "L'action nécessite un block spécifique à la position ciblée, mais celui fourni n'était pas adapté.$(br2)Provoque des étincelles vertes et une explosion éphémère à l'endroit donné. L'explosion ne semble pas pouvoir détruire ou blesser, elle est juste surprenante.", + needs_parens: "J'ai tenté de dessiner une rune qui ne fonctionne que lorsque je suis en $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)introspection/$ mais je n'ai encore tracé aucune $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$.$(br2)Provoque des étincelles oranges et pousse la rune que j'ai tenté de dessiner dans la stack en tant qu'iota.", + too_many_patterns: "J'ai tenté d'utiliser trop de runes en un seul $(hex)Sortilège/$. Souvent, cela se produit quand je crée une boucle infinie.$(br2)Provoque des étincelles bleu foncé et me fait suffoquer.", + true_name: "J'ai tenté de $(l:patterns/readwrite#hexcasting:write)$(action)sauvegarder une référence/$ à un autre joueur dans un médium permanent.$(br2)Provoque des étincelles noires et me rend aveugle pendant environ une minute.", + disabled: "J'ai tenté d'utiliser une action qui a été interdite par un administrateur du serveur.$(br2)Provoque des étincelles noires.", + other: "Un bug dans le mod a changé un iota en un mauvais type ou a fait planter le sort. $(l:https://github.com/gamma-delta/HexMod/issues)S'il vous plaît, faites un rapport de bug !/$$(br2)Provoque des étincelles noires.", }, phials: { "1": "Je trouve ça assez... agaçant, la façon dont Mère-Nature refuse de me donner la change pour mon travail. Si tout ce que j'ai en main est une $(l:items/amethyst)$(item)Améthyste Chargée/$, même la plus petite des $(l:patterns/basics#hexcasting:raycast)$(action)Distillations de l'Archer/$ consommera l'entièreté du cristal, gaspillant le $(media)Média/$.$(br2)Heureusement, il semblerait que j'ai trouvé un moyen d'en quelque sorte pallier à ce problème.", "2": "J'ai trouvé d'antiques parchemins décrivant une $(item)fiole/$ infusée avec du $(media)média/$. Lorsque je conçois des $(hex)Sortilèges/$, mes sorts draineraient plutôt leur $(media)média/$ de la fiole. La forme liquide du $(media)média/$ me laisserait l'équivalent exact, ou pour le dire autrement : rien ne serait gaspillé. C'est un peu comme la batterie interne d'une $(l:items/hexcasting)$(item)Relique/$, ou similaire ; Je peux même utiliser la $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ de la même manière.", + desc: "$(italic)Les produits laitiers sont nos amis pour la vie./$", + "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.1": "Unifie deux sets.", + "and.1": "Récupère l'intersection de deux sets.", + to_set: "Supprime les doublons de la liste.", + "xor.1": "Récupère la disjonction exclusive de deux sets.", }, types: { "compare_item/": { strict: "Similaire à la $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Distillation Trieuse/$, mais pousse s'ils sont des objets identiques. Deux $(l:items/focus)$(item)Foci/$ ne seront considérés identiques que s'ils contiennent le même iota et ont $(l:patterns/spells/cyclevariant)$(thing)la même apparence/$.", + "remarks.title": "Sur les Porte-Objets", }, + "compare_block/": { + lenient: "Récupère les blocs spécifiés par les vecteurs en anglais et pousse la comparaison entre leur type. Deux $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)escaliers en bois ensorcelé/$ seront toujours considérés comme identiques malgré leur forme ou s'ils contiennent de l'eau (waterlog).", + strict: "Récupère les blocs spécifiés par les vecteurs en anglais et pousse la comparaison entre leur apparence. Deux $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)escaliers en bois ensorcelé/$ ne seront considérés identiques que s'ils ont exactement la même apparence.", + remarks: "Mère Nature semble décider arbitrairement quand les blocs semblent identiques l'un, l'autre. Les ardoises posées apparaissent identiquent si elles sont pointées dans la même direction et partagent leur état d'immersion dans l'eau, même si elle ne partagent pas leurs Runes. Pareillement, les coffres apparaissent identiques s'ils partagent leur apparence extérieure, même si leur contenu diffère.", + }, + compare_entity: "Compare deux entités données et pousse si elles sont du même type.", + type_not_equals: "Compare les deux iotas fournis et pousse s'ils sont de types différents.", + type_equals: "Compare les iotas fournis et pousse s'ils sont du même type.", }, hexcasting: { "2": "Pour cela, je peux créer un des trois types d'objets magiques : $(l:items/hexcasting)$(item)Talismans/$, $(l:items/hexcasting)$(item)Reliques/$ ou $(l:items/hexcasting)$(item)Artéfacts/$. Tous peuvent contenir les runes d'un $(hex)sortilège/$ à l'intérieur, ainsi qu'une petite batterie contenant du $(media)média/$.$(br2)Il suffit d'en tenir un et d'appuyer sur $(thing)$(k:use)/$ pour activer les runes à l'intérieur, comme si son propriétaire venait de concevoir le sortilège avec son sceptre, tout en utilisant sa batterie interne.", - "3": "Chaque objet a ses propres particularités : $(br2)Les $(l:items/hexcasting)$(item)Talismans/$ sont fragiles, détruits après que leurs réserves de $(media)média/$ soient épuisées et ils ne $(italic)peuvent pas/$ être rechargés ;$(br2)Les $(l:items/hexcasting)$(item)Reliques/$ peuvent être utilisées aussi souvent que leur propriétaire le souhaite, tant qu'il y a suffisamment de $(media)média/$ restant, mais deviennent ensuite inutiles jusqu'à ce qu'elles soient rechargées.", + "3": "Chaque objet a ses propres particularités : $(br2)Les $(l:items/hexcasting)$(item)Talismans/$ sont fragiles, détruits après que leurs réserves de $(media)média/$ soient épuisées et ils ne $(italic)peuvent pas/$ être rechargés ;$(br2)Les $(l:items/hexcasting)$(item)Reliques/$ peuvent être utilisées aussi souvent que leur propriétaire le souhaite, tant qu'il y a suffisamment de $(media)média/$ restant, mais deviennent ensuite inutiles jusqu'à ce qu'elles soient rechargées ;", "4": "Les $(l:items/hexcasting)$(item)Artéfacts/$ sont les plus puissants de tous -- après que leur $(media)média/$ soit entièrement vidé, ils peuvent utiliser l'$(l:items/amethyst)$(item)Améthyste/$ depuis l'inventaire de leur propriétaire comme paiement pour le $(hex)Sortilège/$, comme je le ferais en confectionnant un sort avec un $(l:items/staff)$(item)Sceptre/$. Évidemment, cela signifie aussi que le sort peut consommer leur esprit s'il n'y a pas assez d'$(l:items/amethyst)$(item)Améthyste/$.$(br2)Une fois que j'ai créé un catalyseur de sortilèges vierge avec un banal établi, je peux l'infuser d'un $(hex)sortilège/$ en utilisant (quoi d'autre) un sort approprié pour l'objet. $(l:patterns/spells/hexcasting)J'ai catalogué les runes ici./$", + "1": "Bien que la flexibilité de concevoir des $(hex)Sortilèges/$ \"sur le pouce\" avec mon $(l:items/staff)$(item)Sceptre/$ est très utile, il devient fastidieux de devoir l'agiter dans tous les sens de façon répétée pour accomplir des tâches basiques. Si seulement je pouvais sauvegarder mes $(hex)Sortilèges/$ du quotidien pour les réutiliser plus tard, cela me simplifierait la vie -- et me permettrait de partager mes $(hex)Sortilèges/$ à des amis aussi.", + "5": "Chaque sort d'infusion nécessite une entité et une $(l:casting/whats_a_hex)liste d'iotas/$ à exécuter sur la Stack. L'entité doit être un objet capable de $(media)contenir du média/$ (ex. une $(l:items/amethyst)$(item)Améthyste/$ lâchée sur le sol) ; L'entité est consommée et forme la batterie.$(br2)Avantageusement, il semblerait que le $(media)média/$ de la batterie ne soit pas consommé par morceau, comme lorsque j'utilise un $(l:items/staff)$(item)Sceptre/$ -- à la place, le $(media)média/$ est \"fondu\" en une sorte de bassin interne. Ainsi, si je stocke un $(hex)Sortilège/$ qui ne coute qu'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, une batterie créée avec un $(l:items/amethyst)$(item)Cristal Chargé/$ me permettra d'utiliser le $(hex)Sortilège/$ 10 fois.", + "crafting.desc": "$(italic)Il y a un dicton de par chez moi : \"La magie n'est pas\". Ce n'est pas juste \"ça fonctionne\", ça ne répond pas à nos pensées, on ne peut pas lancer de boules de feu ou créer un délicieux repas depuis le néant ou transformer une bande d'agresseurs en grenouilles et escargots./$", }, ancient_cyphers: { "1": "Lors de mes aventures, j'ai fini par découvrir ce qui semble être des $(l:items/hexcasting)$(item)Talismans/$ créés par les anciens Ensorceleurs des temps passés. Ces $(item)Talismans anciens/$ fonctionnent de la même façon que ceux que je peux créé : Ils ne peuvent pas être rechargés et se briseront une fois leurs réserves de $(media)média/$ arrivées à terme. Cependant, contrairement à mes propres $(l:items/hexcasting)$(item)Talismans/$, leur structure détériorée me permet d'apercevoir le $(hex)Sortilège/$ stocké en eux.", @@ -868,18 +1040,417 @@ "3": "Le (l:items/pigments)$(item)Pigment/$ infusé dans ces reliques est un mélange unique entre le violet et l'orange, correspondant à leur apparence cuivre-et-améthyste. Je peux le répliquer en utilisant la recette ci-dessus.", }, hexcasting_spell: { - "craft/cypher": "Coûte environ une $(l:items/amethyst)$(item)Améthyste Chargée/$.", - "craft/trinket": "Coûte environ cinq $(l:items/amethyst)$(item)Améthystes Chargées/$.", + "craft/cypher": "Coûte environ une $(l:items/amethyst)$(item)améthyste chargée/$.", + "craft/trinket": "Coûte environ cinq $(l:items/amethyst)$(item)améthystes chargées/$.", "erase.2": "Le sort videra aussi tout le $(media)média/$ stocké dans l'objet, le renvoyant à Mère-Nature et me rendant l'objet dans un état totalement neuf. De cette manière, je peux réutiliser les $(l:items/hexcasting)$(item)Reliques/$ dans lesquelles j'ai placé un sort erroné, par exemple.$(br2)Cela fonctionne aussi pour nettoyer un $(l:items/focus)$(item)Focus/$ ou une page de $(l:items/spellbook)$(item)Livre de Sorts/$, brisant leur sceau par la même occasion.", - "craft/artifact": "Coûte environ 10 (l:items/amethyst)$(item)Améthystes Chargées/$.", + "craft/artifact": "Coûte environ dix (l:items/amethyst)$(item)améthystes chargées/$.", + "recharge.1": "Recharge un contenant de $(media)média/$ de mon autre main. Coûte environ un $(l:items/amethyst)$(item)Éclat d'Améthyste/$ par objet.", + "erase.1": "Vide tout content de $(hex)Sortilège/$ ou d'iota se trouvant dans mon autre main. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ par objet.", + basics: "Chacun de ces trois Sorts crée un $(l:items/hexcasting)$(thing)Catalyseur de Sortilèges./$$(br)Ils m'exigent de tenir le Catalyseur vide dans ma main gauche et d'avoir deux choses : la conception de la Liste d'Iotas (souvent des Runes) à lancer, et une Entité qui représente un stack d'$(l:items/amethyst)$(item)améthyste/$ pour la batterie du Catalyseur.$(br2)Voir $(l:items/hexcasting)cette entrée/$ pour plus d'informations.", }, cycle_variant: "Certains objets que je crée semblent étrangement réceptifs à l'influence du $(media)média/$. En tenant en main un $(l:items/hexcasting)$(item)Talisman/$, une $(l:items/hexcasting)$(item)Relique/$, un $(l:items/hexcasting)$(item)Artéfact/$, $(l:items/focus)$(item)Focus/$ ou un $(l:items/spellbook)$(item)Livre de Sorts/$ dans mon autre main, je peux utiliser ce sort pour changer leur apparence. Coûte une quantité négligeable de $(media)média/$.", + lore: { + inventory: { + "1": "Cellule 39, Registre de Restoration #72, Centre de Détention Beta$(br2)Nom du prisonnier : Raphael Barr$(br)Crime : Connaissance Illégale du Projet Œil-poudré$(br)Motif de libération de la cellule : Mort$(br)Notes complémentaires : Le texte suivant était gribouillé sur le majorité de l'espace libre de la cellule.", + "2": "Je vois des hexagones quand je ferme les yeux.$(br2)Les Runes, elles envahissent l'espace entre mes yeux et mes paupières, mon esprit, mes rêves. J'entre et sort de ma lucidité, comme un prisme attaché à un fil, parfois parvenant à capter la lumière, et parfois consommé par elle.", + "3": "Je suis plus lucide aujourd'hui. Peut-être. C'est difficile à dire. Je ne peux même plus dire que je suis fatigué ; à un moment la companie constante de l'épuisement m'a quitté, alors que quelque chose d'autre est venu pour me piquer les yeux. Je ne peux plus ressentir la fatigue. Mais elle est là. $(br2)Mes os sont fragiles. Mes articulations sont dures et pointues.", + "4": "Parfois, la raison pour laquelle je suis enfermé ici me revient. Je me souviens d'avoir été trop insistant à propos de quelque chose que je savais... Je me souviens d'une pièce très lumineuse où on m'a dit des choses. Je me souviens que mes pensées se sont solidifiées dans le verre, brisées, fondues et recristallisées encore et encore et encore avec un but précis : me faire oublier le pire pour me garder en vie alors qu'ils me tuaient. Moi, l'Iota de MOI perdrait son sens puisqu'il n'y aurait plus de spectateur à l'intérieur, juste une coquille vide mais je les ai convaincu qu'ils avaient fini le travail", + "5": "ils ont cru qu'ils m'avaient brisé au delà du point où ils pouvaient me mettre de la poudre aux yeux mais j'étais suffisamment conscient et suis suffisamment conscient pour sentir la DOULEUR$(br2) je ne dors plus mais lorsque je me réveille je ne peux pas me frotter les yeux puisque ça me déchirerait la peau et je ne veux pas voir les scintillements pourpres à l'intérieur", + "6": "Ils ne me tuent pas, parce que mon mari a mon Focus et il le saurait si je mourrais. Mais il n'est pas Ensorceleur et ne pourra jamais me trouver avec ses piètres compétences. je suis hors de portée$(br2)ça me f ait mal de penser. littéralement. les pensées sont chères maintenant que les stries restantes rejoignent directement les millions de microcristaux", + "7": "je me souviens des médecins dans la pièce brillante ils me forçaient à inspirer une substance comme du sable mais tellement plus coupante et ça m'a fait tant souffrir. Au début ce n'était que la douleur physique de mes muqueuses qui essayaient d'absorber le verre brisé mais ensuite ils ont réussi à mettre le doigt sur mon système de réponse aux stimulis et ils pouvaient le faire en un mot$(br2)je me souviens d'être en train de camper et d'avoir vu la division en train d'établir leur cercle tout autour du village et le sol sous mes pieds a commencé à trembler", + "8": "perd la notion du temps. Parfois je crois voir des visions de mon futur parce qu'elles semblent logique mais elle ne peuvent pas arriver car je sais que je serai enfermé ici à tous jamais parce que les hommes dans la pièce blanche me l'ont dit. je me vois glisser et fracasser mon crâne contre le sol et se fissurer en deux et l'intérieur il y aura des pointes de non-améthyste enduites de mon sang qui perceront les trois livres de graisse et de viande qui rêve encore d'être un papillon", + "9": "j'espère que mes élèves vont bien. pourquoi est-ce que je pense à ça ? du gâchis. ils m'ont dit que j'étais du gâchis, ils n'étaient pas satisfaits de me détruire ils avaient besoin de me faire me sentir comme si je le méritais aussi. Pas de bâtons ni même de pierres, rien que des mots pour me blesser. s'ils me relâchaient de toute façon personne ne me croirait car mon corps est facile à juger je ressemble à un autre accro à la sursorcellerie$(br2)mais ils m'ont enfermé à la plase et je ne sais pas si on peut considérer ça comme de la clémence", + "10": "avec tout le média autour de moi j'ai essayé plusieurs fois de concevoir un sortilège pour me faire sortir ou au moins pour alléger mes souffrances mais les runes qui se promènent dans les ruines de mon âme se dissolvent en ricanant quand j'essaie de les atteindre. je pense me souvenir qu'il m'ont forcé à les oublier, je me souviens de grandes structures de savoir intrinséquement liées à moi s'écrouler et s'effondrer sous le poids de l'ignorance forcée et ça me fait tellement mal d'essayer de me souvenir de ce que j'ai oublié que je me souvenais penser savoir", + "11": "peut-être que je suis juste dans les tréfonds des tréfonds des tréfonds des tréfonds de la dépendance à la sursorcellerie, les runes qui me tranchent l'espace entre les yeux et les paupières j'en ai entendu parler, les arêtes violettes de mes nerfs j'en ai entendu parler. y'a-t-il une raison d'essayer de me faire croire ce qui est vrai quand je ne me fais pas torturer. je mérite ce qui m'arrive. si je n'ai plus jamais l'occasion d'en parler à qui que ce soit à quoi bon essayer", + "12": "ils vont tuer tout le monde et détruire le monde entier pas vrai la grande a besoin de se nourrir tout autant que moi... c'éttait quand la dernière foiss que j'ai mangé$(br2)tout le monde a besoin de manger et on ne pourra plus faire ça si tous les fermiers du monde sont vidés et que toutes les connaissances en agriculture sont perdues ou au moins quelqu'un d'autre va le Découvrir et faire fondre leur petite mines satisfaites dans la cire", + "13": "peut être se réveilleront t'il un jour quand ils se demanderont où sont toutes les chses qu'on leur a laissé et pourquoi il y a des millions de kilomètres de tunnels sous la terre quand il n'y a plus personne d'assez intelligent pour les miner$(br2)je peux les voir en train de me lire . ils seront... trop perdus pour s'en soucier", + }, + cardamom5: { + "5": "Je n'arrive plus écrire, mes mains tremblent tant, par pitié, quelqu'un, sauvez nous.", + "4": "Cette lettre m'a demandé tant de courage a écrire, et je n'ai pas le courage de le partager avec les gens moi-même, mais si personne ici ne peut avoir ces informations je prie pour que tu puisse le faire... c'est éspérer en vain de m'attendre à ce que ça se propage dans un trou aussi paumé que Brackenfalls, mais s'il te plaît, je t'en supplie, fais de ton mieux. Souviens-toi d'eux Papa... Amanita Libera, Jasmine Ward, Theodore Cha... s'il te plaît, souviens-toi d'eux et oublie ma lâcheté, je t'en laisse la responsabilité.", + "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #4/$$(br2)Amanita a disparu.$(br) Je ne sais pas où elle est passée, Papa. La dernière fois que je l'ai vu c'était pour le souper et elle venait juste de parler à quelqu'un au sujet des disparitions, puis--", + "2": "puis-- puis elle avait disparu elle aussi. Et plus personne ne parle d'elle, et j'ai tellement tellement peur, Papa, est-ce qu'ils sont tous au courant? Tout le monde doit avoir un camarade qui s'est juste $(italic)évaporé/$ dans les airs, qui n'existe plus.$(br2)$(italic)Où sont-ils tous passés/$ ?", + "3": "Ils continuent de fermer l'accès à plein d'endroits aussi-- Nous ne sommes pas allés en expédition avec la Division des Géologues depuis des semaines, tous les appareils de collecte de Média dans le dôme principal ont aussi disparu, la Division des Apothicaires ont fermé depuis des mois... c'est comme si des termites étaient en train de ronger la Grande depuis l'intérieur, ne laissant derrière qu'une coquille vide.$(br2)Je crois qu'ils ont commencé à lire notre courrier aussi...", + }, + experiment2: { + "4": "Sujet #23 \"A.L\"$(br)Capacités de communications conservées dans une plus grande mesure que la plupart des sujets ; diminuées avec des phrases cassées, puis la répétition du mot \"carte\" pendant plusieurs heures.$(br2)Pour approfondir nos tests : comment la procédure affecte précisément les ensorceleurs et les non-ensorceleurs ?$(br2)...", + "3": "Sujet #7\"T.C.\" $(br)Résultats similaire aux autres sujets plusieurs heures après la procédure : capable de se lever, d'effectuer des tâches simples... $(br2)Sujet #11 \"R.S.\"$(br)Anésthésié avant la procédure...$(br2)...", + "2": "Fréquence cardiaque haute immédiatement après la procédure, mais ces résultats sont inconclusifs dû à son état de peur intense précédent la procédure. Résultats de la production de cristaux : 35 uθ/min....$(br)...$(br)Sujet #4 \"P.I.\"$(br)Les tests psychologique lancés sur le sujet P.I montrent une permanence de l'objet, une conscience spatial et un raisonnement numérique de base. Difficultés pour apprendre de nouvelles tâches.$(br2)...", + "1": "$(italic)Ces documents étaient lourdement censurés. J'ai copié le texte lisible qu'il contenaient ici./$$(br2)Sujet #1 \"A.E.\"$(br)A cessé de résister dès la fin de la procédure. Expressions faciale et langage corporel flasque, mais peut se tenir debout sans assistance. Une fois seul, le sujet mime absentément les actions qu'il avait l'habitude de faire dans son précédent métier (jardinier).", + }, + experiment1: { + "1": "$(italic)Je n'ai pu récupérer que ces cinq entrées dans ce registre./$$(br2)Détonation #26$(li)Localisation : Carpenter's North$(li)Population : 174$(li)Nodes formés : 3$(li)Distance de l'épicentre : 55-80m vertical, 85-156m horizontal$(li)Generation de Média : 1320 uθ/min", + "2": "Détonation #27$(li)Localisation : Brackenfalls$(li)Population : 79$(li)Nodes formés : 1$(li)Distance de l'épicentre : 95m vertical, 67m horizontal$(li)Generation de Média : 412 uθ/min", + "3": "Détonation #28$(li)Localisation : Greyston$(li)Population : approx. 1000$(li)Nodes formés : 18$(li)Distance de l'épicentre : 47-110m vertical, 59-289m horizontal$(li)Generation de Média : 8478 uθ/min", + "4": "Détonation #29$(li)Localisation : sans nom ; village à jours à l'ouest de Greyston$(li)Population : 35$(li)Nodes formés : 0$(li)Distance de l'épicentre : N/A$(li)Generation de Média : N/A$(br2)Note : les habitants sont affectés de la même façon que d'habitude", + "5": "Détonation #30$(li)Localisation : Boiling Brook$(li)Population : 231$(li)Nodes formés : 4$(li)Distance de l'épicentre : 61-89m vertical, 78-191m horizontal$(li)Generation de Média : 1862 uθ/min", + "6": "Conclusion : il en faut approx 60 pour un node. Trop peu les consume mais n'est produit pas assez d'énergie pour la formation de nodes. Corrélation superficielle entre le nombre d'entrée et la profondeur/largeur.$(br2)Les effets sur les habitants sont toujours plus sévères qu'avec les test avec des sujets individuels, particulièrement les effets physiques.", + }, + cardamom1: { + "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #1/$$(br2)Mon cher Papa,$(br)Il semblerait que chaque jour, j'ai une raison de plus de vous remercier d'avoir économisé pour m'envoyer à la Grande Académie. J'apprends tellement de choses, c'est incroyable !Je sens bien que je ne suis pas assez douée avec les mots pour vous exprimer ma gratitude... cet endroit est merveilleux.", + "2": "Je suis assise dans le dôme principal en écrivant ces mots. Il est maintenu par la Division des Ensorceleurs ; ils ont ce mécanisme particulier tout en haut qui capte le superflu d'énergie des pensées qui se découle des bureaux désordonnés d'étudiants travailleurs, à ce que je comprends. L'une de mes amies au dortoire, Amanita, étudie sur le sujet, et qu'est ce qu'elle aime m'en parler en long et en large, même si, je dois l'avouer, je ne comprends pas tout.", + "3": "À ce que j'ai compris, le procédé qui nous permet de penser-- les mécanismes intangible qui font bouger ma plume et qui vous permettent de lire cette lettre-- n'est pas très efficace. Une petite partie de cette énergie se répand dans l'environnement, un peu comme l'essieu d'une voiture qui se réchauffe après avoir tourné un moment. Cette énergie superflue s'appelle le \"Média\". Le surplus de Média d'une seule personne est insignifiant, mais les centaines de têtes pensantes dans le dôme principal le multiplient en quelque sorte, et en combinaison avec cet ingénieux mécanisme, il peut se solidifier dans une gemme violette.", + "4": "Mais assez parlé de ses recherches. Je suis rentrée de ma première expédition avec la Division des Géologues aujourd'hui ! Désolée de ne pas avoir pu envoyer de lettre avant de partir ; j'ai été prise de court. Nous avons exploré une fissure dans la terre à l'est de la Grande et avons passé la nuit a camper sous la roche et le sol. Nous sommes évidemment restés dans les parties bien éclairées et déjà explorées de la grotte. Pour être honnête j'étais sûrement plus en sécurité qu'à la surface, mais qu'est ce que j'avais peur !", + "5": "Heureusement la nuit s'est terminée sans souci, et nous avons pu continuer d'entrer plus loin dans la grotte pour examiner les veines de minerai locales. Nous cherchions une veine de cristal pourpré appelée \"améthyste\", qui est sensée se trouver en petites quantités profondément sous terre. Nous n'avons malheureusement rien trouvé et sommes remonté à la surface les mains vides.", + "6": "Maintenant que j'y pense, la description de cette \"améthyste\" ressemble étrangement à celle des cristaux de Média qu'Amanita ne cesse de mentionner. Vous imaginez si ces pépites de pensées se formaient naturellement sous la terre ? Je ne suis pas sûre de pouvoir imaginer une raison pour leur existence en revanche... ", + "7": "En tant qu'étudiante, j'ai le droit d'envoyer une lettre par la poste Akashique tous les trois mois, gratuitement. C'est fâcheux, mais tu connais ma situation financière... donc j'ai bien peur que cette offre soit la seule option pour que je puisse communiquer avec vous. Je l'apprécierais bien sûr énormément si vous arriviez à trouver un peu d'argent pour m'envoyer une lettre en retour, mais on dirait bien que nos communications seront limitées. Je déteste être loin de vous, mais les compétences que j'acquérirai ici en vaudront bien la peine. Imaginez, je deviendrai la première membre de notre famille à devenir autre chose que fermière !", + "8": "Donc, je suppose que je vous écrirai à nouveau dans trois mois.$(br2)Avec affection,$(br)-- Cardamom Steles", + }, + cardamom2: { + "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #2/$$(br2)Mon cher Papa,$(br)... Ciel, qu'il est difficile d'essayer de vous résumer les trois derniers mois dans une courte lettre. Je me vois imposée d'une tâche si cruelle par un miracle dont j'ai la grâce de disposer entièrement gratuitement ! La vie est dure.", + "2": "Mes recherches avec la Division des Géologues ont bien progressé. Nous sommes allés en expéditions maintes fois, plus profondément sous terre, là où la roche douce et grise laisse place à de l'ardoise solide et feuilletée. Elle crée une poussière infâme et étouffante sous nos pieds... c'est impensable l'hostilité qui se tient juste sous nos pieds à tout instant, même sans parler des créatures de l'obscurité. (J'ai eu une ou deux rencontres avec elles, mais je sais à quel point vous tremblez à l'idée que j'aie à me battre pour ma survie, donc je ne vous en parlerai pas.)", + "3": "Nous avons réussi à trouver une partie de cette améthyste, en revanche. Il y avait une fine veine avec quelques cristaux en surface lors de l'une de nos expéditions. Nous avions des instructions strictes de n'en garder aucun et de les remettre au préfet de notre Division immédiatement. Je trouve toute cette affaire ridicule ; d'un côté ils traitent ça comme un sujet secret d'importance majeure, et de l'autre ils laissent un groupe d'une douzaine d'étudiants, avec à peine six mois d'expérience à l'Académie, essayer de miner à peine dix drachmes de ce truc avec douze marteaux de géologues dans une zone d'un mètre carré....", + "4": "Je n'arrive pas à imaginer pourquoi faire non plus. Un bibliothécaire m'a montré une encyclopédie des cristaux qui dépeint l'améthyste comme presque inutile ; elle n'est utilisée que pour créer certaines formes de verres spécialisées et des lentilles.$(br2)Si je devais spéculer, je dirais que ce cristal d'améthyste et le Média qui lui ressemble tant sont la même substance, comme je vous l'avait théorisé la dernière fois.", + "5": "Si c'était vrai, la confidentialité et l'étrange aversion du préfet pour mes questions serait parce que c'est une nouvelle découverte que l'Académie ne veut pas voir tomber dans de mauvaises mains.$(br2)Mais cette théorie ne me convient pas vraiment. L'améthyste que j'ai manipulé dans la grotte et les cristaux de Média qu'Amanita m'a montré se ressemblent beaucoup mais ne sont pas identiques. J'aimerais les revoir côte-àcôte bien sûr, mais le Média ronronne d'une manière particulière et vibre sous les doigts d'une manière que l'améthyste ne fait pas.", + "6": "C'est possible que je ne l'ai pas ressenti sur l'améthyste dans la grotte à cause du stress quand j'étais sous terre-- mes mains tremblaient la seule fois ou j'ai réussi à en toucher, et la sensation est très douce-- mais pas similaire selon moi. La lumière réfléchit légèrement différemment.$(br2)J'imagine que si j'arrive à mettre les mains sur un cristal d'améthyste à la surface, je pourrai demander à Amanita de voir si elle peut lancer un Sort avec. Chaque fois qu'on arrive à se voir elle a un nouveau tour fantastique.", + "7": "La semaine dernière elle m'a suspendu dans les airs sans aucun support ! C'est étrange comme sensation de sentir son corps frémir et devenir plus léger que l'air alors que le poids des vêtements reste le même... Je suis juste contente qu'elle m'ait tiré vers le lit avant que l'effet se termine.$(br2)Avec affection,$(br)-- Cardamom Steles", + }, + cardamom3: { + "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #3 partie 1/2/$$(br2)Mon cher Papa,$(br)Deux évènements particuliers se sont passés depuis la dernière fois que je vous ai écrit.$(br2)Premièrement, le professeur qui se chargait des étudiants de première année de la Division des Ensorceleurs a disparu. Personne ne sait où il est passé. Son bureau et ses quartiers ont été trouvé fermés à double tour, toujours dans leur état désordonné habituel.", + "2": "Encore plus bizarrement, toute tentative des étudiants de l'Académie de remuer les portions administratives de cette bureaucracie tumultueuse ont été fermement rejetées. Même les autres professeurs semblent réticents à parler de lui.$(br2)Comme vous pouvez l'imaginer, Amanita est profondément secouée. Les professeurs que la Grande a réussi à trouver pour le remplacer n'ont pas une once de son charisme ou de son talent avec les débutants.", + "3": "Mais incroyablement, ce n'est pas la plus étrange des deux choses que j'ai à vous raconter. La chose la plus horrible qui ne me soit jamais arrivé c'est produite lors d'un autre voyage avec la Division des Géologues. Cette fois nous devions aller en expédition près d'un village.", + "4": "D'habitude quand on fait ce genre de chose, il y a un long processus administratif avec le Maire ou l'aîné du village pour être sûr d'avoir les permissions nécessaires et de connaître les limites de ce qu'on peut faire et d'où on peut aller. Mais dans cette expédition, on a pas vraiment eu à faire tout ça ; nous avons été notifiés de l'endroit où nous allions par un préfet de la Division des Ensorceleurs à peine deux jours avant notre départ.", + "5": "Nous avons campé près du village, mais dans une épaisse forêt, alors que les plaines à proximité était bien plus hospitalières. Nous pouvions à peine voir le village de là où nous étions. Quand j'ai posé mon sac de couchage le soir où nous sommes arrivés, le silence inhabituel me dérangeait. Même si nous ne pouvions pas voir le village, nous aurions dû être capable de l'entendre. Mais pendant toute la durée de notre séjour à la surface, il n'y avait presque aucun bruit.", + "6": "Les quelques petites choses que j'entendais me paraissaient comme des bruits de labeur : un marteau sur une enclume et une houe dans la terre par exemple. Mais je n'ai pas entendu une seule conversation.$(br2)Le lendemain nous avons préparé nos torches et sommes descendus sous terre.", + "7": "Nous n'avions pas été informés de ce que l'on cherchait exactement, mais l'un de mes camarades avait entendu dire qu'on creusait pour trouver de l'améthyste, ce qui avait l'air raisonnable. J'avais les yeux entrainés à débusquer la moindre nuance de violet sur les murs de la grotte, mais alors que la pierre grise commençait à se transformer en ardoise noire, une vue incroyable s'est montrée à moi.$(br2)Une chambre entière faite d'améthyste, presque dix fois plus grande que moi. L'intérieur scintillait d'éclats violets et des reflets de nos torches dans le verre, chaque surface couverte de cristaux pointus. Il y avait plus d'améthyste ici que notre groupe avait jamais extrait depuis mon arrivée à la Grande.", + "8": "Ils nous ont distribués des gants et ils nous ont dit de miner. L'un des préfets qui nous accompagnait avait une boîte couleur lavande que j'avais vu les supérieurs à la Grande utiliser comme boîte de rangement, et les autres étudiants et moi on cassait avec minutie les cristaux vitreux sur les murs de la grotte et les mettions dans la boîte. Dessous la première couche de cristaux fragiles, il y avait deux types de croissance plus denses. L'une ressemblait aux crystaux de surface en composition, l'autre était plus... J'ai du mal à trouver le mot.", + "9": "J'hésite à dire \"importante\", mais c'est la meilleure description que je puisse trouver. Elles avaient une certaine... prestance, comme si le X sombre gravé à sa surface avait un sens sacré. Peu importe la raison, nous avions des instructions strictes de ne pas y toucher. De temps en temps quand une pioche malplacée en brisait une, l'étudiant responsable se prenait un sermon. Même si le travail était dur et prenait la majeure partie de mon attention, je ne pouvais que remarquer une certaine... lucidité inhabituelle. C'était un mélange d'émotions étranges : je me sentais clair d'esprit, mais j'ai aussi ressenti que si je m'arrêtais pour examiner ce sentiment je ne m'arrêterai sûrement jamais.", + "10": "C'était comme si chaque inspiration érigeait un panneau amical qui m'indiquait la direction que je devrais suivre, directement au fond d'une falaise escarpée. J'ai alors repris mes esprits et me suit immergé dans mon travail de minage, ce qui éloignait les panneaux.$(br2)J'ai quand même réussi à cacher un morceau de cristal dans ma sacoche.$(br2)Nous avons passé la journée à miner, la majeure partie du cristal avait été extraite quand le chronomètre des préfets indiquait le coucher du soleil.", + "11": "Alors que nous partions j'ai remarqué que sur la surface sombre du minerai condensé que nous avons évité de miner, il y avait des petits boutons de nouveau cristal, comme si ils se reformaient. Tout ce que j'avais appris sur la géologie des cristaux disait qu'ils se formaient sur des milliers d'années, mais là ça s'était produit en moins d'une journée. J'imagine que les avertissements des préfets étaient fondés au moins.", + "12": "Notre retour à la surface fut bref, et nous sommes retournés dans nos tentes alors que le soleil disparaissait dans l'horizon-- Mes excuses, je n'ai presque plus de papier pour finir ma lettre. Une unique lettre Akashique n'est pas infinie... Cette histoire vaut bien l'achat d'une autre lettre. Je les enverrai d'un coup, pour qu'elles arrivent ensembles.$(br2)Avec affection,$(br)-- Cardamom Steles", + }, + cardamom4: { + "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #3 partie 1/2/$$(br2)Mon cher Papa,$(br)Comme je vous le disais, je n'avais plus de papier pour vous écrire mon histoire, donc la suite est dans cette lettre. Nous sommes retournés au camp pendant le coucher de soleil. Et cette nuit était l'évènement le plus horrible de toute cette sortie.", + "2": "Je m'étais réveillée dans le milieu de la nuit pour aller me soulager. La ciel était couvert de nuages et je dois admettre que je m'étais perdue sans la lumière de la lune et n'arrivais pas à retrouver la direction du campement. Apeurée par les monstres de la nuit, j'ai décidé de trouver un chemin vers le village pour voir si je pourrais y trouver un lit. Au moins je serais en sécurité là-bas.", + "3": "Le village était facile à trouver et le silence y régnait. Même aussi tard dans la nuit je m'attendais à ce que l'auberge ne soit, même si pas bondée, au moins pas silencieuse. Mais en regardant à travers la porte je n'ai vu personne.$(br2)J'ai toqué à la porte d'une des maisons en vain. Les deux maisons suivantes aussi étaient complètement vides.", + "4": "Mon pouls s'est accéléré et j'ai décidé d'entrer dans la maison suivante. Je me suis dite que la personne à l'intérieur se montrerait compréhensive si je dérangeais son sommeil. Et au moins entendre un autre voix, me rassurerait, même s'ils ne me laissait pas passer la nuit sous leur toit.$(br2) La maison était très petite, à peine plus qu'une table de cartographie et un lit. Je pouvais voir quelqu'un dans le lit et j'ai essayé de me rassurer en me disant que tout le monde dans le village devait être profondément endormi quand je me suis tournée pour sortir.", + "5": "Mais les nuages se sont dégagés, et la lumière de la lune c'est posée sur le lit de l'habitant.$(br2)J'ai hurlé et ses yeux se sont posés sur moi. Ce n'était... distinctement et horriblement pas humain. C'était une sorte d'affreuse dé-évolution de l'homme, son front était trop grand, son corps épais et dense. Je crois qu'il est approprié deparler de \"chose\" au moins ; cette... chose devant moi n'avait décidément pas la sagesse d'un humain malgré la ressemblance.", + "6": "Ses yeux se sont posés sur moi-- oh qu'ils étaient immondes ses yeux, éteints et stupides comme ceux d'un mouton ! La chose ouvrit sa bouche et une caricature souffrante de la parole s'en écoula, un râle tremblotant et nasal.", + "7": "J'ai couru. Dans le clair de lune, j'ai pu apercevoir d'autres habitants à travers les fenêtres et ils étaient tous aussi déformés et simplifiés que la première $(italic)créature/$ que j'ai vu. J'ai couru dans l'obscurité de la forêt, loin de ces terribles, terribles yeux d'animaux dans ces visages déformés.$(br2)Le camp était plus facile à trouver maintenant que je pouvais voir. Personne n'avait remarqué mon absence, bienheureusement. Je suis retournée dans mon sac de couchage et j'ai fait de mon mieux pour oublier la nuit.", + "8": "Comme vous pouvez le voir en lisant cette lettre, je n'ai pas bien réussi. Ce visage biscornu hante toujours mes rêves. Je tremble à l'idée de penser que ça a pu être humain auparavant.$(br2)Après notre retour à la Grande j'ai montré à Amanita l'éclat de cristal que j'ai volé. Elle a confirmé mes suspiscions : c'est bel et bien un morceau de Média. Ce que fait une énorme géode de Média sous la terre en revanche, elle n'en a aucune idée.", + "9": "Elle a aussi parlé de quelque chose d'intéressant : apparemment le Média peut être utilisé de manière similaire à la vraie améthyste pour créer les lentille de verre que j'ai mentionné il y a quelques lettres de ça. La qtructure physique de leurs cristaux sont presque identiques, et ça n'a rien à voir avec les propriétés magiques du Média, du moins c'est ce qu'elle dit.$(br2)J'ai préféré ne pas lui parler du village rempli de monstres.", + "10": "Je sais à quel point l'on manque d'argent à la maison, et à quel point il est cher d'envoyer une lettre à la Grande, mais je vous en supplie, envoyez moi vos conseils. Je suis vraiment bouleversée et vous lire me ferait tant de bien.$(br2)Avec affection,$(br)-- Cardamom Steles", + }, + }, + creative_items: { + "1": "J'ai inventé quelques objets particuliers qui ne peuvent être obtenu qu'en étant particulièrement $(italic)créatif/$.", + creative_unlocker: "Le $(#74b3f2)Cube de Média/$ est une source presque illimitée de pouvoir, et sert de source infinie de $(#b38ef3)Média/$ pour n'importe quel $(#b38ef3)Sortilège/$ que je souhaite concevoir. Il a aussi l'air bien appétissant. Peut-être que le manger pourrait révéler des informations sur ce monde, on entrerait alors dans une zone de divulgâche...", + "2": "En plus, il s'avère qu'en renommant un $(#74b3f2)Cube de Média/$ avec une enclume, je peux l'utiliser pour tester et mieux comprendre mes $(#b38ef3)Sortilèges/$. Si j'ai réussi à obtenir une influence Créative sur ce monde, je veux peut-être la désactiver avant d'essayer...", + debug_media: { + title: "debug media", + desc: "En renommant le $(#74b3f2)Cube de Média/$ en \"debug media\", des retours sur la quantité de Média consommée me seront donnés dans la fenêtre du chat.", + }, + }, + media: { + "1": "Le $(#b38ef3)Média/$ est une forme d'énergie mentale externe à l'esprit. Tous les êtres vivant génèrent des quantités infimes de $(#b38ef3)Média/$ en pensant à n'importe quoi ; une fois la pensée terminée, le Média est relâché dans la nature.$(br2)L'art de la $(#b38ef3)Sorcellerie/$ est l'art de manipuler le $(#b38ef3)Média pour faire ce qu'on lui demande.", + "2": "Le $(#b38ef3)Média/$ peut exercer son influence sur d'autres formes de Média-- sa force et sa méthode d'influence peuvent être manipulées en dessinant des Runes avec du $(#b38ef3)Média/$. $(p) Les maîtres de la discipline utilisaient un morceau de $(#b38ef3)Média/$ concentré au bout d'un bâton : en l'agitant dans les airs avec précision, ils étaient capables de manipuler suffisamment de $(#b38ef3)Média/$ avec assez de précision pour influencer le monde lui-même, sous la forme d'un $(#b38ef3)Sortilège/$.", + "3": "Malheureusement, même un être entièrement doté de conscience (comme moi, je présume) ne peut générer que des quantités de $(#b38ef3)Média/$ ridicules. Il serait bien peu pratique d'utiliser ma propre psyché pour concevoir des Sortilèges. $(br2)Mais les légendes racontent qu'il y aurait des dépots naturels sous terre où le $(#b38ef3)Média/$ s'accumule lentement sous forme cristalline.$(p)Si seulement je pouvais en trouver un...", + }, + flights: { + "range.1": "Un vol limité dans sa portée.", + "1": "Même s'il semble que voler sans limites pour de vrai m'est impossible, j'ai quand même trouvé quelques méthodes pour maintenir quelqu'un dans les airs, mais elles ont leurs inconvénients respectifs.$(br2)Elles produisent toutes une aura scintillante grâce au surplus de $(#b38ef3)Média/$ ; lorsque le Sort se rapproche de ses limites cette aura devient de plus en plus rouge et noire.", + "time.1": "Un vol limité dans sa durée.", + "2": "D'autres formes de vol existent, bien sûr. Par example, une combinaison des Sorts $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulsion/$ et $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)Nadir du Soleil Bleu/$ était utilisée dans l'antiquité comme forme de vol primitive.$(br2)J'ai aussi entendu parler d'une fine membrane que l'on porte sur le dos pour se donner la capacité de planer. D'après mes recherches, le Grand Sort $(l:patterns/great_spells/altiora)$(action)Altiora/$ pourrait être utilisé pour l'imiter.", + "range.2": "Le deuxième argument est un rayon en mètres, qui forme un périmètre horizontal en forme de cercle dans lequel le sort est stable. Sortir de ce périmètre arrêtera le Sort, et me laissera tomber du ciel mais tant que je reste à l'intérieur le Sort dure indéfiniment. Une étincelle de $(#b38ef3)Média/$ marque le point d'origine du périmètre de sécurité. $(br2) Coût d'approximativement 2 $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + "can_fly.1": "Renvoie si le joueur donné est sous l'effet du vol de l'$(l:patterns/spells/flight#hexcasting:flight/range)Anachorète/$ ou de celui du $(l:patterns/spells/flight#hexcasting:flight/time)Voyageur/$.", + "time.2": "Le second argument est une durée en secondes pendant laquelle le sort reste stable. Une fois le temps écoulé, le sort prend fin et je suis lâché dans le vide.$(br2)Coûte environ deux $(l:items/amethyst)$(item)Poussières d'Améthyste/$ par seconde de vol ; Je suppose que c'est surtout adapté pour le voyage.", + }, + geodes: { + "1": "Aha ! En minant profondément sous la terre, j'ai découvert une énorme géode qui rayonnait d'énergie-- une énergie qui faisait pression sur mon crâne et mes pensées. Et maintenant, je tiens cette pression dans ma main sous forme solide. Ca prouve mon hypothèse. Cette géode $(italic)doit/$ être le dépot de $(#b38ef3)Média/$ dont parlaient les légendes.$(br2)Ces$(l:items/amethyst)$(item)cristaux d'améthyste/$ doivent être de $(l:items/amethyst)$(thing) bien astucieuses formes de $(#b38ef3)Média/$ solidifié.", + "2": "Il semblerait qu'en plus des $(l:items/amethyst)$(item)Éclats d'améthyste/$ que j'ai pu voir dans le passé, ces cristaux peuvent aussi faire tomber un peu de $(l:items/amethyst)$(item)Poussière d'améthyste/$, ainsi que des plus gros cristaux d'$(l:items/amethyst)$(item)Améthyste Chargée/$. On dirait que j'aurai plus de chance de trouver ces cristaux d'$(l:items/amethyst)$(item)Améthyste Chargée/$ en utilisant une pioche enchantée avec Fortune.", + "3": "Quand je me laisse distraire par la beauté enivrante du cristal, je peux le sentir se connecter vivement à mon esprit. C'est comme si le $(#b38ef3)Média/$ dans l'air entrait en moi, me prêtait sa force, comme si il me comprenait... C'est une sensation fantastique.$(br2)Enfin, mes études dans les Arcanes commencent à prendre leur sens!$(p)Je vais relire les légendes d'antan à nouveau maintenant que je sais à quoi j'ai affaire.", + }, + "brainsweep_spell.1": "Ce Sort ne fait ni queue ni tête... Pour être honnête, je ne suis pas sûr de vouloir savoir ce qu'il fait.", + amethyst: { + lore: "$(italic)Le vieil homme leva la main vers le feu en soupirant. Il avait débloqué une partie de son cerveau qui contenait les souvenirs des montagnes autour d'eux. Il puisa l'énergie de ces terres, comme il avait appris à le faire à Terisia avec Drafna, Hurkyl, l'archimandrite et les autres mages des Tours d'Ivoire. Il se concentra, et les flammes se tordirent en s'élevant depuis les bûches, s'entremêlant entre elles jusqu'à ce qu'elles forment un doux sourire./$", + dust: "Il semblerait que je puisse trouver de l'améthyste sous trois formes différentes lorsque je brise un cristal dans une géode. La forme la plus mineure semble être une petite pile de poussière brillante, qui équivaut à une faible quantité de $(media)média/$.", + shard: "La seconde est un éclat d'améthyste, du genre que les $(hex)profanes/$ connaissent et utilisent. Un éclat contient autant de $(media)média/$ en lui que $(l:items/amethyst)$(item)poussières d'Améthyste)/$.", + crystal: "Pour finir, je peux en de rares cas trouver de larges cristaux crépitant d'énergie. Ils contiennent autant de $(media)média/$ que dix $(l:items/amethyst)$(item)Poussières d'Améthystes/$ (ou deux $(l:items/amethyst)$(item)Éclats d'Améthyste/$).", + }, + slate: { + "3": "J'ai aussi pris connaissance d'autres types d'$(l:items/slate)$(item)Ardoises/$, des ardoises qui ne contiennent pas de Runes mais qui semblent incrustées d'autres... étranges... bizarreries. J'en ai mal à la tête rien que d'y penser comme si mes pensées se courbaient autour de leurs designs, en suivant leur chemin, se tournent et se retournent à travers leur profondeurs labyrinthique, à travers et à travers et à travers et canalisées à travers et traitées et-- $(br2)... J'ai failli me perdre. Peut-être que je devrais revisiter ces recherches plus tard.", + "crafting.desc": "$(italic)Voici la lettre \"a.\" Tâche de t'en souvenir./$", + "1": "Les $(l:items/slate)$(item)Ardoises/$ sont similaires à des $(l:items/scroll)$(item)Parchemins/$ : Je peux copier une rune sur elles et les placer dans le monde pour l'afficher.$(br2)Cependant, j'ai lu de vagues histoires sur de grands assemblages d'$(l:items/slate)$(item)Ardoises/$, utilisées pour concevoir de $(l:greatwork/spellcircles)$(thing)grands rituels/$ plus puissants que ce dont je suis capable avec mon $(l:items/staff)$(item)Sceptre/$.", + "2": "Peut-être que ces connaissances me seront révélées avec le temps. Mais pour le moment, je suppose qu'elles font des décorations plutôt jolies.$(br2)Au moins, elles peuvent être placées sur n'importe quelle surface d'un bloc, contrairement aux $(l:items/scroll)$(item)Parchemins/$.", + }, + the_work: { + "1": "J'ai vu tant de choses. Des choses indescriptibles. Des choses insensées. Je pourrais écrire trois mots, retourner mon esprit sans dessus dessous et étaler ma matière grise sur les murs sombres de mon crâne pour qu'elle s'y décompose en coton et en ichor.", + "2": "J'ai vu des aiguilles microscopiques dessiner des motifs et des schémas gravés à l'acide à l'intérieur de mes paupières. Ils s'enfouissent -- dansent, me narguent, me $(italic)font souffrir/$. Je suis possédé par un $(italic)besoin/$ intense de les dessiner, de les créer, de leur donner forme, de les libérer des entraves collantes de ma psychée mortelle -- de les présenter au monde dans leur Gloire pour que tous puissent voir.$(p)Tout le monde devrait voir.$(p)Tous verront.", + }, + brainsweeping: { + "1": "Un secret m'a été révélé. Je l'ai vu et je ne peux pas oublier son horreur. L'idée me trotte dans l'esprit.$(br2)J'ai cru-- Ô naïvement, j'ai $(italic)cru/$ --que le $(#b38ef3)Média/$ était l'énergie superflue qui s'émanait de la pensée. Mais maintenant je $(italic)sais/$ ce que c'est : c'est l'énergie qui $(italic)constitue/$ la pensée.", + "2": "C'est produit par la conscience qui pense et ça permet à la conscience de penser. C'est un noeud qui entrelace ses tresses dans son propre fil. L'Entité que j'anthropomorphise naïvement comme la Mère Nature n'est simplement qu'un immense enchevêtrement de la sorte, ou peut-être est-ce l'ensemble de tous les enchevêtrements ou... ça me fait mal de penser j'ai tant de synapses et elle pensent toutes à la douleur en unisson eLLES PEUVENT TOUTES LA VOIR$(br2)Je n'arrive plus à tenir. Mes notes. Vite.", + "3": "Il reste toujours aux villageois de ce monde suffisamment de conscience pour être extraite. Pour la mettre dans un bloc, la déformer et la changer. Des schémas complexes engendrées par différentes manières de penser, les voies neuronales abstraites de leurs profession et de leurs vies écrites dans la physique froides d'atomes solides. $(br2)C'est la terrible dessein de la $(l:patterns/great_spells/brainsweep)$(action)Déchirure Mentale/$, l'extraction. Vise l'entité du villageois et son bloc de destination. Dix $(l:items/amethyst)$(item)Améthystes Chargées/$ pour cette perversion volitive.", + budding_amethyst: "Et un exercice de pratique. Pour cette transfusion, n'importe quel villageois fera l'affaire, s'il est suffisamment développé. D'autres recettes pourraient requérir des villageois plus spécialisés. PLUS JAMAIS je ne descendrai dans l'infernale Terre pour mon $(#b38ef3)Média/$.", + }, + readers_guide: { + "3": "Également, par soucis de clarté, j'écris le type des iotas que l'action va consommer ou modifier, suivis d'une \"→\" et pour finir, le type des iotas que l'action va créer.$(p)Par exemple, \"$(n)vecteur, nombre/$ → $(n)vecteur/$\" signifie que l'action retirera un vecteur et un nombre du haut de la stack puis ajoutera un vecteur ; ou, si on veut le dire autrement, retirera un nombre de la stack puis modifiera le vecteur. (Dans cette configuration, le nombre doit être au sommet de la stack, et le vecteur juste en dessous)", + "4": "\"→ $(n)entité/$\" signifie qu'une entité sera poussée dans la stack. \"$(n)entité, vecteur/$ →\" signifie qu'une entité et un vecteur seront supprimés et que rien ne sera poussé dans la stack.$(br2)Pour finir, s'il m'arrive de trouver le petit point indiquant l'ordre des traits trop confus, je peux appuyer sur $(thing)Control/Command/$ pour afficher un dégradé, où la couleur est sombre au début de la rune et claire sur la fin. Cela fonctionne également lorsque j'observe un parchemin ou que je suis en train de confectionner un sort !", + }, + math: { + numvec: "Beaucoup d'opérations mathématiques fonctionne à la fois sur des nombres et des vecteurs. De tels arguments seront notés \"nombre|vecteur\" ou \"nbr|vec\".", + "add.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur somme.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et l'additionne à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en additionnant chaque élément correspondant dans un nouveau vecteur (i.e. (1, 2, 3) + (0, 4, -1) = (1, 6, 2)).", + "sub.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur différence.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et le soustrait à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en soustrayant chaque élément correspondant dans un nouveau vecteur.$(br2)Dans tous les cas, l'élément au sommet de la stack est soustrait au second élément.", + "mul.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur produit.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et le multiplie à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)produit scalaire/$.", + "div.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur quotient.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et divise chaque élément du vecteur par ce dernier.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)produit vectoriel/$.$(br2)Dans les deux premiers cas, le second iota est divisé par le premier.$(p)ATTENTION : Ne JAMAIS diviser par zéro !", + "abs.2": "Remplace un nombre par sa valeur absolue, ou un vecteur par sa longueur.", + "pow.1": "Effectue une exponentiation (parfois appelée puissance) ou une projection vectorielle.", + "pow.2": "Avec deux nombres, les combine en élevant le premier à la puissance du second.$(li)Avec un nombre et un vecteur, supprime le nombre et élève chaque composant du vecteur à la puissance de ce nombre.$(li)Avec deux vecteurs, les combine en la $(l:https://en.wikipedia.org/wiki/Vector_projection)projection vectorielle/$ du second sur le premier.$(br2)Dans les deux premiers cas, le premier argument est la base et le second l'exposant.", + floor: "Arrondit un nombre, coupant la partie après la virgule et ne laissant qu'un nombre entier. Si je fournis un vecteur, arrondit ainsi chacun de ses composants.", + ceil: "Arrondit un nombre par le haut, l'élevant au nombre entier suivant s'il possède une virgule. Si je fournis un vecteur, arrondit par le haut chacun de ses composants.", + construct_vec: "Combine trois nombres au sommet de la stack en un vecteur (X, Y et Z en partant du bas vers le haut).", + deconstruct_vec: "Sépare les composants d'un vecteur en trois nombres distincts.", + modulo: "Récupère le modulo de deux nombres. Le modulo est la valeur $(italic)restante/$ après une division entière - par exemple, 5 modulo 2 (5 %% 2) = 1 et 5 %% 3 = 2. Sur un vecteur, le modulo est appliqué sur chaque composant de façon indépendante.", + coerce_axial: "Pour un vecteur, le contrait à sa direction axiale la plus proche, sous la forme d'un vecteur unitaire. Pour un nombre, renvoie son signe : 1 si positif, -1 si négatif. Dans les deux cas, le 0 est inchangé.", + "add.1": "Effectue une addition.", + "sub.1": "Effectue une soustraction.", + "mul.1": "Effectue une multiplication ou un produit scalaire.", + "div.1": "Effectue une division ou un produit vectoriel.", + "abs.1": "Calcule la valeur absolue ou la longueur.", + random: "Crée un nombre aléatoire entre 0 et 1.", + }, + circle_patterns: { + "circle/impetus_dir": "Renvoie la direction à laquelle l'$(l:greatwork/impetus)$(item)Impetus/$ de ce cercle runique fait face sous la forme d'un vecteur unitaire.", + disclaimer: "Ces runes doivent être exécutées depuis un $(l:greatwork/spellcircles)$(item)Cercle Runique/$ ; Essayer de les exécuter avec un $(l:items/staff)$(item)Sceptre/$ échouera de façon... spectaculaire.", + "circle/impetus_pos": "Renvoie la position de l'$(l:greatwork/impetus)$(item)Impetus/$ de ce Cercle Runique.", + "circle/bounds/min": "Renvoie la position du coin inférieur-nord-ouest des limites de ce Cercle Runique.", + "circle/bounds/max": "Renvoie la position du coin supérieur-sud-est des limites de ce Cercle Runique.", + }, + basic_spell: { + "explode.1": "Supprime un nombre et un vecteur de la stack et crée une explosion à la position donnée et la puissance spécifiée par le nombre.", + "explode.fire.1": "Supprime un nombre et un vecteur de la stack et crée une explosion embrasée à la position donnée et la puissance spécifiée par le nombre.", + add_motion: "Supprime une entité et une direction de la stack et pousse l'entité dans la direction donnée. La force de l'impulsion est déterminée par la longueur du vecteur.$(br)Coûte une quantité de $(l:items/amethyst)$(item)poussières d'Améthyste/$ égale au carré de la longueur du vecteur, plus une pour chaque impulsion consécutive ciblant une entité.", + blink: "Supprime une entité et une longueur de la stack, puis téléporte l'entité devant elle avec la distance spécifiée.$(br)Coûte environ un $(l:items/amethyst)$(item)Éclat d'Améthyste/$ tous les deux blocs de distance.", + "beep.1": "Supprime un vecteur et deux nombres de la stack. Joue d'un $(thing)instrument/$ défini par le premier nombre à la position donnée, avec une $(thing)note/$ définie par le second nombre. Coûte un nombre négligeable de $(media)média/$.", + "explode.fire.2": "Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, et 3 $(l:items/amethyst)$(item)Poussières d'Améthyste/$ supplémentaires pour chaque niveau de puissance d'explosion. Le reste est identique à une $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, mais avec du feu.", + "explode.2": "Une puissance de 3 est à peu près équivalente à une explosion de Creeper ; 4 équivaut à de la TNT. Mère-Nature ne m'autorise pas à dépasser 10.$(br2)Étrangement, cette explosion ne semble pas me blesser. Peut-être que c'est un peu comme si c'était $(italic)moi/$ qui explosait ?$(br2)Coûte une quantité négligeable à 0 de puissance, et 3 $(l:items/amethyst)$(item)Poussières d'Améthyste/$ supplémentaires pour chaque niveau au-delà.", + "beep.2": "Il semblerait qu'il existe 16 $(thing)instruments/$ et 25 $(thing)notes/$ différents. Leur index commencent à zéro pour les deux.$(br2)Je crois que ce sont les même instruments que je peux produire avec un $(item)Bloc musical/$, bien que l'origine de la numérotation des instruments m'échappe.$(br2)Dans tous les cas, je peux trouver les nombres dont j'ai besoin en observant une $(item)Bloc musical/$ au travers d'une $(l:items/lens)$(item)Lentille Divinatoire/$.", + }, + sentinels: { + "sentinel/wayfind": "Transforme le vecteur de position au sommet de la stack en un vecteur unitaire pointant de la position donnée à celle de ma $(l:patterns/spells/sentinels)$(thing)sentinelle/$, ou $(thing)Null/$ si elle n'a pas été invoquée. Coûte une quantité négligeable de $(media)média/$.", + "sentinel/create": "Invoque ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + "sentinel/destroy": "Bannit ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ et la retire de ce monde. Coûte une quantité négligeable de $(media)média/$.", + "sentinel/get_pos": "Ajoute la position de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ à la stack, ou $(thing)Null/$ si elle n'est pas invoquée. Coûte une quantité négligeable de $(media)média/$.", + }, + "teleport/great": { + "2": "Le vecteur fourni est un décalage et non une position absolue dans le monde ; par exemple, si j'utilise (1, 0, 0), l'entité finira précisément à un bloc de distance à l'est de sa position originelle.$(br2)Malheureusement, il semblerait que quand je me téléporte moi-même, je suis incapable de rester parfaitement concentré. Cela peut provoquer, à l'arrivée, une propulsion involontaire de certains de mes objets en dehors de mon inventaire.$(br2)Je dois également garder en tête que la cible sera obligatoirement retirée de tout ce qu'elle pourrait chevaucher d'inanimé, comme un bateau... mais j'ai lu des notes suggérant que les animaux faisaient également un petit tour avec leur propriétaire, si je peux le dire ainsi.", + }, + entities: { + get_entity: "Transforme la position dans la stack en l'entité présente sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + "get_entity/": { + animal: "Transforme la position dans la stack en l'animal présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + monster: "Transforme la position dans la stack en le monstre présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + item: "Transforme la position dans la stack en l'objet lâché au sol présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + 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/": { + 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.", + }, + 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.", + 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 à 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/$.", + "akashic/write": "Associe l'Iota avec la Rune fournie par la $(l:greatwork/akashiclib)$(item)Bibliothèque Akashique/$ avec son $(l:greatwork/akashiclib)$(item)Archive/$ à la position donnée. Il n'y a $(italic)pas/$ de portée maximum. Coûte environ une $(l:items/amethyst)$(item)poussière d'améthyste/$.", + }, + itempicking: { + "1": "Certains sorts, comme $(l:patterns/spells/blockworks#hexcasting:place_block)$(action)Place-Bloc/$, consumeront des objets additionnels depuis mon inventaire. Quand cela se produit, le sort va en premier regarder quels objets il peut utiliser, puis récupérer tous les objets semblables de mon inventaire.$(br2)Ce procédé est appelé \"Sélection d'objet\".", + "2": "Plus spécifiquement : $(li)Premièrement, le sort va chercher le premier objet valide dans ma barre de raccourcis à partir de $(italic) la droite de mon $(l:items/staff)$(item)Sceptre/$, faisant le tour dans ce sens là, commençant par le tout premier emplacement si le $(l:items/staff)$(item)sceptre/$ est dans mon autre main.$(li)Secondement, le sort va récupérer cet objet $(italic)d'aussi loin que possible dans mon inventaire/$, priorisant mon inventaire principale plutôt que mes raccourcis.", + "3": "De cette manière, je peux conserver un \"sélecteur\" d'objets dans ma barre de raccourcis pour dire au sort ce qu'il doit utiliser, et remplir le reste de mon inventaire de cet objet pour constituer un stock suffisant pour mon sort.", + }, + directrix: { + "2": "Une $(l:greatwork/directrix)$(item)Directrice/$ accepte une vague de $(#b38ef3)Média/$ et détermine de quelle flèche elle va en sortir, selon le villageois stocké à l'intérieur.$(br2)J'ignore si cette idée m'a été accordée ou si mon esprit se plie assez autour de la barrière pour y trouver ses propres idées maintenant... Mais si l'idée vient de moi, que je l'ai pensée, est-ce qu'on peut vraiment dire qu'elle m'a été accordée ? Le cerveau est un vaisseau pour l'esprit, l'esprit est un vaisseau pour les idées et les idées pour la pensée et la pensée voit tout et sait tout-- NON JE NE DO I S P A S", + "1": "Créer une vague de $(media)média/$ autosuffisante est plus complexe que la diriger. Généralement, la vague se désintègre lorsqu'elle arrive à un croisement, mais avec un esprit pour la guider, on peut décider d'une sortie précise.$(br2)Cette manipulation ne demande pas autant d'habileté que pour activer un Cercle Runique. En fait, cela pourrait même être fait à la main... Mais les esprits \"portatifs\" auxquels j'ai maintenant accès seraient bien plus adaptés.", + empty_directrix: "Premièrement, un plan pour le berceau... même si, peut-être qu'un \"substrat\" serait un mot plus précis. Sans un esprit pour la guider, la direction de la sortie est déterminée par de microscopiques fluctuations dans la vague de $(media)média/$ et son environnement, ce qui rend le tout aléatoire.", + directrix_redstone: "Une $(l:greatwork/directrix)$(item)Directrice de Maçon/$ change sa sortie en fonction d'un signal de redstone. Sans signal, la sortie est le côté de la même couleur que le $(media)média/$ ; avec un signal, la sortie sera du côté de la même couleur que la redstone.", + directrix_boolean: "Une $(l:greatwork/directrix)$(item)Directrice de Berger/$ change sa sortie en fonction d'un booléen pris dans la Stack. Un $(thing)Vrai/$ place la sortie dans son dos, un $(thing)Faux/$ la place en face. S'il n'y a pas de booléen, un méchef sera produit.", + }, + mishaps2: { + "bad_mindflay.title": "Déchirure Mentale Inerte", + "no_circle.title": "Cercle de Sorts manquant", + "no_record.title": "Archives Akashiques manquantes", + "bad_shepherd.title": "Berger inadéquat", + "1": "J'ai découvert de nouveaux et terrifiants moyens de me rater. Je ne dois pas en périr.", + no_circle: "J'ai tenté d'utiliser une action nécessitant un Cercle Runique sans en avoir un.$(br2)Provoque des étincelles bleu clair et $(italic)dépose/$ mon inventaire sur le sol.", + no_record: "J'ai tenté d'accéder à une $(l:greatwork/akashiclib)$(item)Archive Akashique/$ à un endroit où il n'y en avait pas.$(br2)Provoque des étincelles violettes et me ponctionne une partie de mon expérience.", + bad_mindflay: "J'ai essayé d'arracher un esprit dont j'avais déjà usé, ou celui d'une entité non compatible.$(br2)Provoque des étincelles vert foncé. Les sujets déjà utilisés seront tués par mon méchef ; les autres seront simplement blessés.", + bad_shepherd: "J'ai tenté d'activer une $(l:greatwork/directrix)$(item)Directrice du Berger/$ sans avoir de booléen au somme de la Stack.$(br2)Provoque des étincelles rouges et blanches et éjecte la Directrice du Cercle. Cela ne la détruit pas, heureusement, mais je ferais bien de m'assurer qu'elle soit récupérée et replacée là où elle devrait être.", + }, + staff: { + "crafting.header": "Sceptres", + "crafting.desc": "$(italic)Ne résiste pas ; flamme, lumière ; étincelle ; brûle comme le Soleil./$", + "1": "Un $(l:items/staff)$(item)Sceptre/$ est mon point d'entrée pour concevoir des $(hex)Sortilèges/$, grands comme petits. En appuyant sur $(thing)$(k:use)/$, je démarre la conception du $(hex)Sortilège/$. Je peux ensuite cliquer et glisser pour dessiner des runes.$(br2)Ce n'est rien d'autre qu'un bout de $(media)média/$ au sommet d'un bâton, mais c'est tout ce dont j'ai besoin après tout.", + }, + lens: { + "crafting.desc": "$(italic)Tu dois apprendre... à voir ce que tu regardes../$", + "1": "Le $(media)média/$ peut avoir des effets particuliers sur n'importe quel type d'information, selon la situation. L'utiliser comme revêtement sur du verre peut aider à... s'éclaircir l'esprit.$(br2)En gardant en main une $(l:items/lens)$(item)Lentille Divinatoire/$, certains blocks afficheront des informations supplémentaires lorsque je les regarderai.", + "2": "Par exemple, en regardant un morceau de $(item)Redstone/$, je verrai la force du signal. Je me doute que je découvrirai d'autres blocks affectés alors que mes recherches sur cet art progresseront.$(br2)De plus, l'avoir en main lorsque j'utiliser un $(l:items/staff)$(item)Sceptre/$ réduira l'espace entre les points, m'accordant plus d'espace pour dessiner.$(br2)Cela fonctionne aussi si je la place sur ma tête, comme un drôle de monocle.", + }, + potions: { + "effects.header": "Clarté et Brouillard", + "1": "Regarder au travers d'une $(l:items/lens)$(item)Lentille Divinatoire/$ me permet de faire rentrer plus de Runes dans ma Grille de Sorcellerie. Mais qu'en est-il si je veux encore augmenter mes capacités au-delà ? L'alchimie a une réponse à cela.$(br2)En ajoutant une poignée de Poussière d'Améthyste à une $(item)Potion Étrange/$, je peux créer un breuvage qui augmente la taille de ma grille de la même façon que la Lentille. Je peux même combiner les deux pour créer la grille ultime !", + "2": "La Potion de Clarté peut être étendue, renforcée et modifiée comme n'importe quelle autre potion.$(br2)Elle peut aussi être corrompue par un $(item)Oeil d'araignée fermenté/$ pour créer la variante opposée. Cela peut être utile pour $(italic)s'occuper/$ d'Ensorceleurs ennemis.", + }, + pigments: { + "colored.crafting.header": "Pigments chromatiques", + "colored.crafting.desc": "Des pigments de toutes les couleurs de l'arc-en-ciel.", + "1": "Les anciens adeptes de mon art s'identifiaient parfois par une couleur, emblématique de leur nom et de leurs $(hex)Sortilèges/$. Bien que leur nom a été effacé, leurs couleurs perdurent encore. Il semblerait qu'une sorte de pigment spécial, offert à Mère-Nature de la bonne manière, devrait \"[...] teindre les pensées d'une manière plaisante pour Mère-Nature, induisant un changement miraculeux dans leurs couleurs personnelles.\"", + "2": "Je ne suis pas sûr des détails, mais je crois que j'ai pu isoler les formules pour différents couleurs et mélanges de pigments. Pour appliquer un pigment, je dois le tenir dans une main et utiliser la rune $(l:patterns/spells/colorize)$(action)Assimilation de Pigment/$ de mon autre main. Cela consume le pigment.$(br2)Les pigments semblent affecter la couleur des étincelles de $(media)média/$ émises lorsque je conçois un $(hex)Sortilège/$ et celle de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$, mais je ne doute pas que la couleur se montrera à bien d'autres endroits.", + special: "Et pour finir, quelques pigments spéciaux.$(item)Le Pigment d'Âme Scintillante/$ brille de couleurs uniques à ma personne, et le $(item)Pigment Vide/$ me rend ma teinte améthyste originelle.$(br2)$(italic)Et toutes les couleurs que je suis au plus profond de moi n'ont pas encore été inventées./$", + }, + numbers: { + example: { + "10.header": "Exemple 1", + "10": "Cette Rune pousse 10.", + "7.header": "Exemple 2", + "7": "Cette Rune pousse 7 : 5 + 1 + 1.", + "-32.header": "Exemple 3", + "-32": "Cette Rune pousse -32 : négation 1 + 5 + 10 * 2.", + "4.5.header": "Exemple 4", + "4.5": "Cette rune pousse 4.5: 5 / 2 + 1 + 1.", + }, + "1": "C'est agaçant, il n'existe pas de méthode simple pour dessiner des nombres. Voici celle que Mère-Nature a daigné nous donner.", + "3": "Dans certains cas, il est possible qu'il soit plus simple d'utiliser un $(l:items/abacus)$(item)Abaque/$. Mais il est utile de connaître la façon \"normale\" de faire les choses.", + }, + decoration: { + "1": "Lors de mes études, j'ai découvert des blocks et décorations que je trouve esthétiquement agréables. J'ai compilé les méthodes et recettes pour les créer ici.", + "ancient_scroll.crafting.desc": "La teinture marron marche très bien pour simuler l'apparence d'un $(l:items/scroll)$(item)Parchemin Antique/$.", + "tiles.crafting.desc": "Les $(l:items/decoration)$(item)Carreaux d'Ardoise/$ peuvent aussi être découpés au Tailleur de pierre.$(br2)Les $(l:items/decoration)$(item)Blocs de Poussière d'Améthyste/$ (à la page suivante) tomberont comme du sable.", + "sconce.crafting.desc": "Les $(l:items/decoration)$(item)Appliques murales en Améthyste/$ émettent de la lumière et des particules, ainsi qu'un bruit de carillon assez plaisant.", + }, + edified: { + "1": "En infusant du $(media)média/$ dans une pousse d'arbre via l'utilisation de $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Ensorcellement de Pousse d'Arbre/$, je peux créer ce que l'on appelle un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Ils ont tendance à être grand et pointus, avec une écorce striée et dont le bois possède d'étranges motifs en spirale. Leurs feuilles ont de vraiment jolies couleurs.", + "2": "J'ai envie de partir du principe que le bois devrait avoir des propriétés intéressantes liées à la $(hex)Sorcellerie/$. Mais, si c'est le cas, je n'arrive pas à les trouver. A tous les égards, il semble n'être que du bois, même si d'une couleur très étrange.$(br2)Je suppose que pour l'instant je peux l'utiliser comme décoration ; toute la panoplie d'objets et blocs de bois peuvent être créés avec.$(br2)Évidemment, je peux l'écorcer avec une hache.", + "crafting.desc": "$(italic)Leurs troncs lisses, à l'écorce blanche, donnent l'effet d'immenses colonnes soutenant le poids d'un grand feuillage, plein d'ombres et de silence./$", + }, + jeweler_hammer: { + "1": "Après avoir été négligent avec mes sources de $(media)média/$ de trop nombreuses fois, j'ai conçu un outil pour palier à ma maladroitesse.$(br2)En utilisant la nature délicate du $(media)média/$ cristallisé comme base pour ma pioche, je peux créer un $(l:items/jeweler_hammer)$(item)Marteau de Bijoutier/$. Il agit comme une $(item)Pioche en fer/$, approximativement, mais il ne peut pas briser tout ce qui fait au moins la taille d'un bloc entier.", + "crafting.desc": "$(italic)Avec précaution, elle brisa le demi-rubis, laissant le sprène s'échapper./$", + }, + zeniths: { + "potion/strength": "Confère la $(thing)Force/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 3 secondes.", + "potion/haste": "Confère la $(thing)Célérité/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 3 secondes.", + "potion/absorption": "Confère l'$(thing)Absorption/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ par seconde.", + "potion/regeneration": "Confère la $(thing)Régénération/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ par seconde.", + "potion/night_vision": "Confère la $(thing)Vision Nocturne/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 5 secondes.", + "1": "Cette famille de Sorts confère des effets de potion positifs sur une Entité, un peu comme les $(l:patterns/spells/nadirs)$(action)Nadirs/$. Par contre, leurs coûts en $(hex)Média/$ augmentent avec le $(italic)cube/$ de leur efficacité.", + }, + altiora: { + "1": "Invoque des lames de $(hex)Média/$ sur mon dos en forme d'ailes, engorgées de suffisamment de substance pour pouvoir planer.", + }, + make_battery: { + "1": "Infuse une bouteille avec du $(hex)Média/$ pour créer une $(l:items/phials)$(item)Fiole./$", + }, + "consts.const/": { + "vec/": { + "0": "Ajoute (0, 0, 0) à la Stack.", + z: "La rune dessinée dans le sens anti-horaire ajoute (0, 0, 1) ; la version dans le sens horaire ajoute (0, 0, -1).", + x: "La rune dessinée dans le sens antihoraire ajoute (1, 0, 0) à la stack ; la version horaire ajoute (-1, 0, 0).", + y: "La rune dessinée dans le sens antihoraire ajoute (0, 1, 0) à la stack ; la version horaire ajoute (0, -1, 0).", + }, + "true": "Ajoute $(thing)Vrai/$ au sommet de la Stack.", + "false": "Ajoute $(thing)Faux/$ au sommet de la Stack.", + "null": "Ajoute $(thing)Null/$ au sommet de la Stack.", + "double/": { + e: "Ajoute $(thing)e/$, la base des logarithmes naturels, au sommet de la Stack.", + tau: "Ajoute τ, la représentation radiale d'un cercle complet, à la Stack.", + pi: "Ajoute π, la représentation radiale d'un demi-cercle, à la Stack.", + phi: "Ajoute φ, le nombre d'or, à la stack. Ce ratio représente la valeur entre deux nombres tel que (A+B)/A = A/B.", + }, + }, + logic: { + and: "Retourne Vrai si les deux arguments sont Vrai, sinon retourne Faux.", + bool_to_number: "Convertit un booléen en un nombre ; Vrai devient $(thing)1/$, et Faux devient $(thing)0/$.", + not: "Si l'argument est Vrai, retourne Faux ; Si c'est Faux, retourne Vrai.", + xor: "Renvoie Vrai si exactement un des arguments est Vrai ; sinon renvoie Faux.", + or: "Renvoie Vrai si au moins un des arguments est Vrai ; sinon renvoie Faux.", + greater: "Si le premier argument est plus grand que le second, renvoie Vrai. Sinon, renvoie Faux.", + less: "Si le premier argument est plus petit que le second, renvoie Vrai. Sinon, renvoie Faux.", + equals: "Si les deux arguments sont égaux (avec une légère tolérance), renvoie Vrai. Sinon, renvoie Faux.", + 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.", + "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: { + "potion/wither": "Inflige $(thing)décomposition/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ par seconde.", + "potion/weakness": "Inflige $(thing)faiblesse/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 10 secondes.", + "potion/levitation": "Inflige $(thing)lévitation/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 5 secondes.", + "potion/poison": "Inflige $(thing)poison/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 3 secondes.", + "potion/slowness": "Inflige $(thing)lenteur/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 5 secondes.", + }, + blockworks: { + extinguish: "Éteint les blocs dans une large zone. Coûte environ six $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + conjure_light: "Invoque une lumière magique qui brille délicatement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + destroy_water: "Draine le liquide depuis un contenant, ou une source alentour de la position donnée. Coûte environ deux $(l:items/amethyst)$(item)Améthystes Chargées/$.", + conjure_block: "Invoque un bloc éthéré, mais solide, qui brille doucement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + edify: "Infuse de force du $(media)média/$ dans une pousse d'arbre à la position donnée, faisant pousser un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Coûte environ une $(l:items/amethyst)$(item)Améthyste Chargée/$.", + create_water: "Invoque un bloc d'eau (ou l'équivalent d'un sceau d'eau) dans un bloc à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + bonemeal: "Encourage une pousse ou une plantation à grandir, comme si de la $(item)Poudre d'os/$ était appliquée. Coûte un peu plus qu'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + place_block: "Prend une position de la Stack, puis choisit un bloc de mon inventaire et le place à la position donnée.$(br2)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + ignite: "Enflamme la position donnée, comme si une $(item)Charge de feu/$ avait été utilisée, ou enflamme une entité. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + break_block: "Prend une position de la Stack, puis brise le bloc qui s'y situe. Ce sort peut casser à peu près tout ce que pourrait briser une pioche en diamant.$(br)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, ou une quantité négligeable s'il brise un $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Bloc Conjuré/$ ou une $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Lumière Conjurée/$.", + }, + greater_sentinel: { + "1": "Invoque une version supérieure de ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ Coûte environ deux $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + }, + weather_manip: { + lightning: "Je commande les cieux ! Ce Sort invoquera la foudre là où je la dirige. Coûte approximativement trois $(l:items/amethyst)$(item)éclats d'améthyste/$.", + summon_rain: "Je contrôle les nuages ! Ce sort invoquera une pluie diluvienne sur le monde. Coûte approximativement une $(l:items/amethyst)$(item)améthyste chargée/$. Ne fait rien si la pluie tombe déjà.", + dispel_rain: "Une contrepartie à l'invocation de pluie. Ce Sort dissipera la pluie tout autour du monde sur lequel je le lance. Coûte approximativement un $(l:items/amethyst)$(item)éclat d'améthyste/$. Ne fait rien si le ciel est déjà dégagé.", + }, + quenching_allays: { + "3": "Ca n'a aucune importance. Ca n'a aucune importance. Ils n'ont aucune importance, seul importe le résultat. Et le voilà.$(br2)Ca doit être si douloureux.$(br2)Dix $(l:items/amethyst)$(item)Poussières d'Améthyste/$, c'est le prix pour réaliser un rituel aussi perverti.", + "4": "Le produit est fragile. Le briser le fera voler en éclats, $(thing)Fortune/$ me permettrait d'augmenter le rendement... Si je souhaite récupérer le bloc lui-même j'aurai besoin de $(thing)Toucher de Soie/$.$(br2)Les éclats qui en résultent valent trois fois plus qu'une $(l:items/amethyst)$(item)Améthyste Chargée/$. Le bloc lui-même équivaut à quatre éclats.", + "1": "ILS SONT DES MORCEAUX DE MÉDIA. Comment ne l'ai-je pas remarqué plus tôt ? Ils sont -- tout comme je suis un amas de chair animé par une bribe de conscience, un Allay est une mine intarissable de Média accrochée à un brin de chair. Ça explique absolument tout -- leur disposition au média, leur réponse à la musique, JE PEUX LE VOIR MANTENANT, COMMMENT personne n'a pu le remarquer avant ?", + }, + colorize: "J'ai besoin de tenir un $(l:items/pigments)$(item)Pigment/$ dans mon autre main pour lancer ce sort. Il consommera la teinture et changera de façon permanente la couleur de mon esprit (ou du moins, jusqu'à ce que je réuse de ce sort). Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + akashiclib: { + "1": "JE SAIS TELLEMENT DE CHOSES il est simplement LÉGITIME d'avoir un endroit où stocker tout ça. Les informations peuvent être gardées dans des livres mais c'est si... oh... tellement tellement tellement teeeeeellement $(italic)lent/$ de toute écrire à la main et de tout lire avec les yeux. Je veux MIEUX que ça. Donc je vais CRÉER mieux que ça.$(br2)... Mon état empire... sais pas si j'aurai le temps d'écrire tout ce qui envahit mon esprit avant que ça ne s'évanouisse.", + "2": "La bibliothèque. Là. Mes schémas.$(br2)De la même façon que les runes sont associées à des actions, je peux associer mes propres runes avec des iotas selon mon bon vouloir. Une $(l:greatwork/akashiclib)$(item)Archive Akashique/$ contrôle la bibliothèque et chaque $(l:greatwork/akashiclib)$(item)Étagère Akashique/$ contient une rune associée à un iota. Tout doit être directement relié, en contact, sur maximum 128 blocs. Une $(l:greatwork/akashiclib)$(item)Ligature Akashique/$ ne fait rien, mais elle compte pour connecter les blocs, étendant la taille de ma bibliothèque.", + akashic_record: "Alloué et assigner des runes est simple mais teeellement ennuyant. J'ai des choses plus utiles à faire. J'ai besoin d'un esprit savamment utilisé pour que l'extraction reste fiable.", + "3": "L'utilisation de la bibliothèque est simple, les runes sont reliées au travers du bibliothécaire qui la regarde et me renvoie l'iota associé. Deux actions feront l'affaire. $(l:patterns/akashic_patterns)Mes notes sont ici/$.$(br2)Utiliser un $(l:items/scroll)$(item)Parchemin/$ vierge sur une étagère copie sa rune. S'accroupir et utiliser une main vide nettoie les informations de l'étagère.", + }, }, "special.hexcasting:": { number: "Reflet Numérique : %s", mask: "Gambit du Comptable : %s", }, - "pattern.unknown": "Emplacement de rune inconnu %s", + "pattern.unknown": "Emplacement de Rune inconnu %s", debug: { media_withdrawn: "%s - Média retiré : %s", "media_withdrawn.with_dust": "%s - Média retiré : %s (%s en poussière)", @@ -890,25 +1461,25 @@ }, loot_hex: { shatter: "Briser", - illuminate: "Illuminé", + illuminate: "Illuminer", growth: "Croissance", ascend: "Ascension", sidestep: "Esquive", - blink: "Clignotement", + blink: "Clignement", blastoff: "Décollage", radar: "Radar", beckon: "Attraction", detonate: "Détonation", shockwave: "Onde de choc", - heat_wave: "Vague de chaleur", - wither_wave: "Vague de décomposition", - flight_zone: "Zone de vol", - kindle: "Embrasement", + heat_wave: "Déflagration", + wither_wave: "Vague de Wither", + flight_zone: "Zone de Vol", + kindle: "Brasier", lunge: "Projection", }, message: { - cant_overcast: "Ce sortilège nécessite plus de Média que j'en possède... Je devrais revérifier mes calculs.", - cant_great_spell: "Le Sort a échoué, pour une raison ou une autre... est-ce que je ne suis pas assez compétent ?", + cant_overcast: "Ce Sortilège nécessite plus de Média que j'en possède... Je devrais revérifier mes calculs.", + cant_great_spell: "Je ne saurais dire pourquoi mais le Sort a échoué... ne suis-je pas assez doué ?", }, tooltip: { spellbook: { @@ -927,20 +1498,20 @@ sealed: "Scellé", }, scroll: { - needs_purchase: "Acheter pour afficher la rune", - pattern_not_loaded: "Placer dans l'inventaire pour charger la rune", - "recalc_warning.line1": "La rune par monde pour %s n'a pas encore été calculée !", - "recalc_warning.line2": "S'il vous plaît, utilisez /hexcasting recalcPatterns, puis prenez un nouveau parchemin.", + needs_purchase: "Acheter pour afficher la Rune", + pattern_not_loaded: "Placer dans l'inventaire pour charger la Rune", + "recalc_warning.line1": "La Rune par-monde pour %s n'a pas encore été calculée !", + "recalc_warning.line2": "S'il vous plaît, utilisez /hexcasting recalcPatterns, puis trouvez un nouveau parchemin.", }, abacus: { "": "%d", - reset: "Réinitialise à 0", - "reset.nice": "bien", + reset: "Remis à zéro", + "reset.nice": "haha nice", }, circle: { - no_exit: "Le flot de Média n'a pas pu trouver de sortie à %s", - many_exits: "Le flot de Média a trop de sorties à %s", - no_closure: "Le flot de Média ne sera pas capable de retourner dans l'Impetus à %s", + no_exit: "Le flux de Média n'a pas pu trouver de sortie à %s", + many_exits: "Le flux de Média a trop de sorties à %s", + no_closure: "Le flux de Média ne sera pas capable de retourner dans l'Impetus à %s", }, lens: { "pattern.invalid": "Rune invalide", @@ -954,8 +1525,8 @@ }, akashic: { "record.count": { - "": "%s iotas stockés", - single: "%s iota stocké", + "": "%s Iotas stockés", + single: "%s Iota stocké", }, "bookshelf.location": "Archive à %s", }, @@ -979,9 +1550,9 @@ spelldata: { onitem: "Contient : %s", anything: "N'importe quoi", - unknown: "Un iota brisé", - "entity.whoknows": "Une entité inconnue", - "akashic.nopos": "L'archive possédée ne connaît aucun iota présent (ceci est un bug ", + title: "Rune de Sorcellerie", + "title.styled": "Rune de Sorcellerie ", example: "", description: "Visuels des Runes de Sorcellerie", }, diff --git a/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 b/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 index 0967ef424b..39ada3b0cf 100644 --- a/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 +++ b/doc/resources/assets/hexcasting/lang/fr_fr.flatten.json5 @@ -1 +1,39 @@ -{} +{ + hexdoc: { + hexcasting: { + title: "Carnet de Sortilèges", + description: "Le Carnet de Sortilèges, dans son intégralité.", + }, + renderer: { + renders: "Rendu", + palettes: "Palettes", + animated: "animé", + monocolor: "monochrome", + gradient: "dégradé", + segment: "segment", + "default": "défaut", + turbo: "turbo", + dark2: "sombre2", + tab10: "tab10", + }, + pattern: { + show: "Cliquer pour montrer le Sort", + hide: "Cliquer pour cacher le sort", + multiplier: "${speedScale()}x", + paused: "En pause", + not_supported: "Votre navigateur ne prend pas en charge la visualisation de Runes. Code de la Rune: {}", + }, + villager_requirements: { + any: "Le villageois doit être {level} ou supérieur", + professional: "Le villageois doit être un {profession} de {level} ou supérieur", + }, + }, + "block.hexcasting": { + slate: "Ardoise vide", + }, + "tag.item.c": { + brown_dye: "Teintures marron", + glowstone_dusts: "Poussières de pierre lumineuse", + wood_sticks: "Bâtons en bois", + }, +} From 8384eb3b3622bbabf698e22d833f6e394633ccdb Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 38/50] chore(l10n): update Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation Co-authored-by: Hexxy Weblate Co-authored-by: ManicTv Co-authored-by: Stanisław Budny Language: Polish Progress: 43.2% (599 of 1386 strings) Progress: 51.7% (717 of 1386 strings) Progress: 56.7% (787 of 1386 strings) Progress: 59.8% (830 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translation: Hex Casting/Common --- .../hexcasting/lang/pl_pl.flatten.json5 | 574 +++++++++++++++++- 1 file changed, 572 insertions(+), 2 deletions(-) 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 013c46a1af..15508db4f1 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 @@ -22,10 +22,12 @@ scroll_small: { "": "Mały Zwój", empty: "Mały Pusty Zwój", + of: "Skąd masz ten przedmiot: %s", }, scroll_medium: { "": "Średni Zwój", empty: "Średni Pusty Zwój", + of: "Skąd masz ten przedmiot: %s", }, scroll: { "": "Duży Zwój", @@ -46,7 +48,7 @@ trinket: "Bibelot", artifact: "Artefakt", battery: "Fiolka Przepływu", - lens: "Ametystowa Soczewka", + lens: "Soczewka Prawdy", abacus: "Liczydło", jeweler_hammer: "Młotek Jubilerski", dye_colorizer_: { @@ -547,9 +549,577 @@ media_consumption: "Zużycie Przepływu", ambit_radius: "Promień Zasięgu Gracza", sentinel_radius: "Promień Zasięgu Wartownika", - scry_sight: "Soczewkowa Wizja", + scry_sight: "Prawdowizja", feeble_mind: "Ograniczony Umysł", }, + action: { + "hexcasting:": { + "const/": { + "null": "Zerowe Odbicie", + "true": "Odbicie Prawdy", + "false": "Odbicie Fałszu", + "vec/": { + px: "Odbicie Wektora +X", + py: "Odbicie Wektora +Y", + pz: "Odbicie Wektora +Z", + nx: "Odbicie Wektora -X", + ny: "Odbicie Wektora -Y", + nz: "Odbicie Wektora -Z", + "0": "Odbicie Wektora Zerowego", + }, + "double/": { + pi: "Odbicie Łuku", + tau: "Odbicie Kręgu", + e: "Odbicie Eulera", + phi: "Odbicie Harmonii", + }, + }, + get_caster: "Odbicie Umysłu", + "entity_pos/eye": "Odbicie Kompasu", + "entity_pos/foot": "Odbicie Kompasu II", + get_entity_look: "Oczyszczenie Alidady", + get_entity_height: "Oczyszczenie Stadiometru", + get_entity_velocity: "Oczyszczenie Tempa", + raycast: "Destylacja Łucznika", + "raycast/axis": "Destylacja Architekta", + "raycast/entity": "Destylacja Zwiadowcy", + get_media: "Odbicie Przepływu", + "circle/": { + "bounds/min": "Mniejsze Odbicie Zakątka", + "bounds/max": "Większe Odbicie Zakątka", + impetus_dir: "Odbicie Kierunkowskazu", + impetus_pos: "Odbicie Drogowskazu", + }, + append: "Destylacja Integracji", + unappend: "Rozpad Izolacji", + index: "Destylacja Wyboru", + singleton: "Oczyszczenie Singla", + reverse: "Oczyszczenie Wsteczne", + last_n_list: "Gambit Stada", + splat: "Dezintegracja Stada", + index_of: "Destylacja Lokalizatora", + remove_from: "Destylacja Wycięcia", + replace: "Egzaltacja Chirurga", + construct: "Destylacja Mówcy", + deconstruct: "Rozpad Mówcy", + get_entity: "Oczyszczenie Bytu", + "get_entity/": { + animal: "Oczyszczenie Bytu: Zwierzę", + monster: "Oczyszczenie Bytu: Potwór", + item: "Oczyszczenie Bytu: Przedmiot", + player: "Oczyszczenie Bytu: Gracz", + living: "Oczyszczenie Bytu: Żywe", + }, + zone_entity: "Destylacja Strefy: Jakiekolwiek", + "zone_entity/": { + animal: "Destylacja Strefy: Zwierzę", + monster: "Destylacja Strefy: Potwór", + item: "Destylacja Strefy: Przedmiot", + player: "Destylacja Strefy: Gracz", + living: "Destylacja Strefy: Żywe", + not_animal: "Destylacja Strefy: Nie Zwierzę", + not_monster: "Destylacja Strefy: Nie Potwór", + not_item: "Destylacja Strefy: Nie Przedmiot", + not_player: "Destylacja Strefy: Nie Gracz", + not_living: "Destylacja Strefy: Nie Żywe", + }, + type_equals: "Destylacja Podobieństwa", + type_not_equals: "Destylacja Różnicy", + "compare_block/": { + strict: "Destylacja Inspektora", + lenient: "Destylacja Nadzorcy", + }, + compare_entity: "Destylacja Taksonomisty", + "compare_item/": { + lenient: "Destylacja Sortownika", + strict: "Destylacja Sterty", + }, + swap: "Gambit Błazna", + rotate: "Gambit Obrotu", + rotate_reverse: "Gambit Obrotu II", + duplicate: "Rozpad Bliźniąt", + over: "Gambit Poszukiwacza", + tuck: "Gambit Grabarza", + "2dup": "Gambit Dioskurów", + or: "Destylacja Alternatywy", + logarithm: "Destylacja Logarytmiczna", + coerce_axial: "Oczyszczenie Osiowe", + read: "Odbicie Skryby", + "read/entity": "Oczyszczenie Kronikarza", + "read/local": "Odbicie Munina", + write: "Gambit Skryby", + "write/entity": "Gambit Kronikarza", + "write/local": "Gambit Hugina", + readable: "Odbicie Audytora", + "readable/entity": "Oczyszczenie Audytora", + writable: "Odbicie Asesora", + "writable/entity": "Oczyszczenie Asesora", + "akashic/read": "Destylacja Akaszy", + "akashic/write": "Gambit Akaszy", + print: "Ukaż", + beep: "Wydaj Nutę", + explode: "Eksplozja", + "explode/fire": "Kula Ognia", + blink: "Mignięcie", + break_block: "Zniszcz Blok", + place_block: "Postaw Blok", + "craft/cypher": "Stwórz Cacko", + "craft/trinket": "Stwórz Bibelot", + "craft/artifact": "Stwórz Artefakt", + "craft/battery": "Stwórz Fiolkę", + recharge: "Naładuj Przedmiot", + erase: "Wyczyść Przedmiot", + create_water: "Stwórz Wodę", + destroy_water: "Zniszcz Płyn", + ignite: "Zapal", + extinguish: "Ugaś", + conjure_block: "Wyczaruj Blok", + conjure_light: "Wyczaruj Światło", + bonemeal: "Przerośnij", + edify: "Oświeć Sadzonkę", + colorize: "Przyswój Pigment", + cycle_variant: "Urok Tkacza", + "sentinel/": { + create: "Przywołaj Wartownika", + "create/great": "Przywołaj Wyższego Wartownika", + destroy: "Przepędź Wartownika", + get_pos: "Zlokalizuj Wartownika", + wayfind: "Orientuj Wartownika", + }, + "potion/": { + weakness: "Nadir Białego Słońca", + levitation: "Nadir Niebieskiego Słońca", + wither: "Nadir Czarnego Słońca", + poison: "Nadir Czerwonego Słońca", + slowness: "Nadir Zielonego Słońca", + regeneration: "Zenit Białego Słońca", + night_vision: "Zenit Niebieskiego Słońca", + absorption: "Zenit Czarnego Słońca", + haste: "Zenit Czerwonego Słońca", + strength: "Zenit Zielonego Słońca", + }, + empty_list: "Odbicie Pustki", + duplicate_n: "Gambit Bliźniąt", + stack_len: "Odbicie Stada", + fisherman: "Gambit Rybaka", + "fisherman/copy": "Gambit Rybaka II", + swizzle: "Gambit Oszusta", + unique: "Oczyszczenie Unikalności", + and: "Destylacja Zgody", + xor: "Destylacja Wykluczenia", + greater: "Destylacja Większości", + less: "Destylacja Mniejszości", + greater_eq: "Destylacja Większości II", + less_eq: "Destylacja Mniejszości II", + equals: "Destylacja Równości", + not_equals: "Destylacja Nierówności", + not: "Oczyszczenie Zaprzeczenia", + bool_coerce: "Oczyszczenie Augura", + "if": "Egzaltacja Augura", + add: "Destylacja Dodania", + sub: "Destylacja Odjęcia", + mul: "Destylacja Mnożenia", + div: "Destylacja Dzielenia", + abs: "Oczyszczenie Długości", + pow: "Destylacja Potęgi", + floor: "Oczyszczenie Podłogi", + ceil: "Oczyszczenie Sufitu", + modulo: "Destylacja Reszty", + construct_vec: "Egzaltacja Wektora", + deconstruct_vec: "Dezyntegracja Wektora", + sin: "Oczyszczenie Sinusa", + cos: "Oczyszczenie Cosinusa", + tan: "Oczyszczenie Tangensa", + arcsin: "Oczyszczenie Odwrotnego Sinusa", + arccos: "Oczyszczenie Odwrotnego Cosinusa", + arctan: "Oczyszczenie Odwrotnego Tangensa", + arctan2: "Destylacja Odwrotnego Tangensa", + random: "Oczyszczenie Entropii", + add_motion: "Pchnięcie", + "flight/range": "Lot Cumownika", + "flight/time": "Lot Wędrowcy", + "flight/can_fly": "Oczyszczenie Awiatora", + flight: "Altiora", + lightning: "Przywołaj Piorun", + summon_rain: "Przywołaj Deszcz", + dispel_rain: "Rozprosz Deszcz", + create_lava: "Stwórz Lawę", + "teleport/great": "Wyższa Teleportacja", + brainsweep: "Oberżnij Umysł", + escape: "Namysł", + runtime_escape: "Kontemplacja", + open_paren: "Introspekcja", + close_paren: "Retrospekcja", + open_n_parens: "Medytacja", + close_all_parens: "Przypomnienie", + read_into_parens: "Wtrącenie", + undo: "Zaniknięcie", + eval: "Gambit Hermesa", + "eval/cc": "Gambit Iris", + for_each: "Gambit Tota", + halt: "Gambit Charona", + thanatos: "Odbicie Tanatosa", + "interop/": { + "gravity/": { + get: "Oczyszczenie Grawitacyjne", + set: "Modyfikuj Grawitację", + }, + "pehkui/": { + get: "Oczyszczenie Guliwera", + set: "Modyfikuj Rozmiar", + }, + }, + slice: "Egzaltacja Wyborcy", + }, + "book.hexcasting:": { + get_entity_height: "Oczysz. Stadiometru", + "get_entity/": { + animal: "Oczysz. Bytu: Zwierzę", + monster: "Oczysz. Bytu: Potwór", + item: "Oczysz. Bytu: Przedmiot", + player: "Oczysz. Bytu: Gracz", + living: "Oczysz. Bytu: Żywe", + }, + zone_entity: "Oczysz. Strefy: Jakiekolwiek", + "zone_entity/": { + animal: "Oczysz. Strefy: Zwierzę", + monster: "Oczysz. Strefy: Potwór", + item: "Oczysz. Strefy: Przedmiot", + player: "Oczysz. Strefy: Gracz", + living: "Oczysz. Strefy: Żywe", + not_animal: "Oczysz. Strefy: Nie Zwierzę", + not_monster: "Oczysz. Strefy: Nie Potwór", + not_item: "Oczysz. Strefy: Nie Przedmiot", + not_player: "Oczysz. Strefy: Nie Gracz", + not_living: "Oczysz. Strefy: Nie Żywe", + }, + mul: "Dest. Mnożenia", + div: "Dest. Dzielenia", + arcsin: "Oczysz. Odwrotnego Sinusa", + arccos: "Oczysz. Odwrotnego Cosinusa", + arctan: "Oczysz. Odwrotnego Tangensa", + arctan2: "Dest. Odwrotnego Tangensa", + "const/vec/": { + x: "Odb. Wektora +X/-X", + y: "Odb. Wektora +Y/-Y", + z: "Odb. Wektora +Z/-Z", + }, + "read/entity": "Oczysz. Kronikarza", + bool_to_number: "Oczysz. Numerologa", + number: "Oczyszczenie Liczby", + mask: "Gambit Księgowej", + }, + }, + "special.hexcasting:": { + number: "Odbicie Liczby: %s", + mask: "Gambit Księgowej: %s", + }, + "iota.hexcasting:": { + "null": { + "": "Null", + desc: "pustą wartość", + }, + double: { + "": "Liczba", + desc: "liczbę", + }, + boolean: { + "": "Logika", + desc: "jotę logiki", + }, + entity: { + "": "Byt", + desc: "byt", + }, + list: { + "": "Spis", + desc: "spis", + }, + pattern: { + "": "Symbol", + desc: "symbol", + }, + garbage: { + "": "Supeł", + desc: "supeł", + }, + vec3: { + "": "Wektor", + desc: "wektor", + }, + continution: { + "": "Kontynuacja", + desc: "jotę skoku", + }, + }, + mishap: { + "": "%s: %s", + invalid_pattern: "Symbol %s nie jest związany z żadnym działaniem", + invalid_pattern_generic: "Ten symbol nie jest związany z żadnym działaniem", + unescaped: "Oczekiwano symbolu, a próbowano wykonać %s", + not_enough_args: "oczekiwano %s lub więcej twierdzeń, lecz stos miał ich tylko %s", + no_args: "oczekiwano %s lub więcej twierdzeń, lecz stos był pusty", + needs_parens: "Nie użyto wpierw Introspekcji", + wrong_dimension: "nie da się zobaczyć %s z wymiaru %s", + entity_too_far: "%s jest poza zasięgiem", + immune_entity: "nie da się wpłynąć na %s", + eval_too_much: "Wykonano zbyt wiele symboli", + no_item: "wymaga %s, lecz niczego nie otrzymano", + "no_item.offhand": "wymaga %s w drugiej ręce, lecz niczego nie otrzymano", + bad_entity: "wymaga %s, a otrzymano %s", + bad_brainsweep: "Umysł tej istoty nie jest kompatybilny z %s", + already_brainswept: "Ten umysł jest już gdzieś indziej", + no_spell_circle: "wymaga kręgu", + others_name: "Spróbowano naruszyć prywatność duszy %s", + "others_name.self": "Muszę bardziej uważać z ujawnianiem mojego Imienia", + divide_by_zero: { + divide: "Nie da się podzielić %s przez %s", + project: "Nie da się rzucić %s na %s", + exponent: "Nie da się podnieść %s do %s", + logarithm: "Nie da się otrzymać logarytmu z %s o bazie %s", + zero: { + "": "zero", + power: "potęgi zerowej", + vec: "wektor zerowy", + }, + power: "potęgi %s", + sin: "sinusa %s", + cos: "cosinusa %s", + }, + invalid_operator_args: { + one: "otrzymano nieoczekiwaną jotę na pozycji %s na stosie: %s", + many: "otrzymano nieoczekiwane joty (%d) na pozycjach %d-%d na stosie: %s", + }, + no_akashic_record: "Nie ma Kroniki Akaszy na %s", + disallowed: "%s jest działąniem zakazanym przez właścicieli serwera", + disallowed_generic: "Ten symbol jest zakazany przez właścicieli serwera", + disallowed_circle: "%s jest działaniem zakazanym w kręgach przez właścicieli serwera", + disallowed_circle_generic: "Ten symbol jest zakazany w kręgach przez właścicieli serwera", + invalid_spell_datum_type: "Próbowano użyć wartości niepoprawnego typu jako SpellDatum: %s (klasa %s). To jest błąd w modzie.", + unknown: "wywołano wyjątek (%s). To jest błąd w modzie.", + stack_size: "Przekroczono limit rozmiaru stosu", + bad_caster: "Próbowano wykonać symbol, który wymaga większego umysłu", + invalid_value: { + "": "spodziewano się %s na pozycji %s na stosie, a otrzymano %s: %s", + "class": { + double: "liczby", + boolean: "joty logiki", + vector: "wektora", + list: "spisu", + pattern: "symbolu", + continuation: "joty skoku", + garbage: "supła", + "null": "null", + entity: { + "": "bytu", + mob: "moba", + item: "przedmiotu", + item_holder: "bytu trzymającego przedmiot", + player: "gracza", + living: "żywego bytu", + }, + entity_or_vector: "bytu lub wektora", + unknown: "(czegoś nieznanego, o-o, to błąd)", + }, + numvec: "liczby lub wektora", + numlist: "liczby całkowitej lub spisu", + double: { + positive: { + "": "liczby dodatniej", + less: "liczby dodatniej mniejszej od %d", + "less.equal": "liczby dodatniej mniejszej lub równej %d", + }, + between: "liczby pomiędzy %d a %d", + }, + int: { + "": "liczby całkowitej", + positive: { + "": "liczby całkowitej dodatniej", + less: "liczby całkowitej i dodatniej, ale mniejszej od %d", + "less.equal": "liczby całkowitej i dodatniej, ale mniejszej lub równej %d", + }, + between: "liczby całkowitej pomiędzy %d a %d", + }, + evaluatable: "czegoś, co można wykonać", + bool_commute: "joty logiki, 0 lub 1", + }, + location_: { + too_far: "%s jest poza zasięgiem", + out_of_world: "%s jest poza granicami świata", + too_close_to_out: "%s jest zbyt blisko do granicy świata", + forbidden: "%s jest dla ciebie zakazane", + bad_dimension: "Ten wymiar zabrania tego działania", + }, + bad_item: { + "": "wymaga %s, lecz otrzymało %dx %s", + offhand: "wymaga %s w drugiej ręce, lecz otrzymało %dx %s", + hotbar: "wymaga %s w ekwipunku podręcznym", + iota: { + "": "czegoś, czym mogę przechować jotę", + read: "czegoś, z czego mogę odczytać jotę", + write: "czegoś, do czego mogę zapisać jotę", + readonly: "czegoś, co przyjmie %s", + }, + media: "czegoś, co może zawierać przepływ", + media_for_battery: "źródła przepływu", + only_one: "dokładnie jednego przedmiotu", + eraseable: "przedmiotu, który da się wyczyścić", + bottle: "szklanej butelki", + rechargable: "przedmiotu, który da się naładować", + colorizer: "pigmentu", + variant: "przedmiotu z wariantami", + placeable: "przedmiotu, który da się postawić", + }, + bad_block: { + "": "Oczekiwano %s na %s, lecz otrzymano %s", + sapling: "sadzonki", + replaceable: "przestrzeni do postawienia bloku", + }, + "circle.bool_directrix": { + no_bool: "jota napotkana na %s to %s, a nie jota logiki", + empty_stack: "stos był pusty na %s", + }, + }, + circles: { + no_exit: "Fala przepływu nie znalazła dalszej drogi na %s", + many_exits: "Fala przepływu znalazła za dużo możliwych dróg na %s", + }, + category: { + basics: { + "": "Pierwsze Kroki", + desc: "Magowie praktykujący tą sztukę rzucali swe _czary tkając symbole w powietrzu za pomocą $(l:items/staff)$(item)Kostura/$ -- lub tworzyli $(l:items/hexcasting)$(item)potężne magiczne przedmioty/$, które rzucały je za nich. Jak mogę to zreplikować?", + }, + casting: { + "": "Sześciokląty", + desc: "Zaczynam pojmować, jak starożytni magowie rzucali _Czary! To nieco skomplikowane, ale nie wątpię, że to wykombinuję. To tak...", + }, + items: { + "": "Przedmioty", + desc: "Poświęcam tę część dziennika wszelkim mistycznym przedmiotom, jakie odkryję podczas badań.", + }, + greatwork: { + "": "Wielkie Dzieło", + desc: "Me oczy ujrzały... tak wiele. Doświadczyły... ruiny... dekonstrukcji i rekonstrukcji. Wszystkie cząsteczki tego świata wrzeszczące z bólu, gdy były wywracane na lewą stronę i redukowane w czystą energię. Me oczy ujrzały Ujrzały Ujrzały Ujrza$(k)jana pawła 2137 lol/$", + }, + lore: { + "": "Dzieje", + desc: "Wsród moich materiałów znalazło się parę listów i tekstów bez bezpośredniego znaczenia dla mojej praktyki. Jednakże, wydaje mi się, że jestem w stanie dzięki nim trochę lepiej poznać historię świata. Zobaczmy...", + }, + interop: { + "": "Kompatybilność Między Modami", + desc: "Wygląda na to, że mam jakieś mody, z którymi Hexcasting jest kompatybilne! Na następnych stronach opiszę ich dokładne interakcje.", + }, + patterns: { + "": "Symbole", + desc: "Lista wszystkich symboli, jakie udało mi się odkryć, wraz z ich funkcjonalnościami.", + }, + spells: { + "": "Zaklęcia", + desc: "Symbole, które mają bezpośredni magiczny wpływ na świat.", + }, + great_spells: { + "": "Arcyzaklęcia", + desc: "Zaklęcia opisane na tych stronnicach są rzekomo o mitycznej mocy i złożoności. Zostały udokumentowane tylko $(l:items/scroll)powierzchownie/$ (i to z dobrego powodu, według manuskryptów). Sądzę jednak, że to tylko gadanina dawno wymarłych tradycjonalistów -- symbolto symbol.$(br2)Co może pójść nie tak?", + }, + }, + landing: "Wygląda na to, że udało mi się dociec do nowej sztuki czarodziejstwa, której entuzjaści tkają cudaczne symbole wewnątrz sześciokątnego splotu. Fascynujące. Postanawiam rozpocząć dziennik, w którym spiszę moje myśli i odkrycia na ten temat.$(br2)$(l:https://forum.petra-k.at/index.php)Forum Link/$", + entry: { + media: "Przepływ", + creative_items: "Przedmioty Trybu Kreatywnego", + geodes: "Geody", + couldnt_cast: "Frustracja", + start_to_see: "CO TO BYŁO", + "101": "Czarowanie 101", + whats_a_hex: "Czym jest czar?", + vectors: "Wstęp Do Wektorów", + mishaps: "Zerwania", + stack: "Stos", + naming: "Nazewnictwo Symboli", + mishaps2: "Wtajemniczone Zerwania", + amethyst: "Ametyst", + staff: "Kostury", + lens: "Soczewka Prawdy", + jeweler_hammer: "Młotek Jubilerski", + thought_knot: "Kłębek Myśli", + focus: "Talizman", + abacus: "Liczydło", + spellbook: "Księga Zaklęć", + scroll: "Zwoje", + slate: "Płyty", + hexcasting: "Czarujące Przedmioty", + ancient_cyphers: "Starożytne Cacka", + phials: "Fiolki Przepływu", + potions: "Mikstury do Czarowania", + pigments: "Pigmenty", + edified: "Oświecone Drzewa", + decoration: "Bloki Ozdobne", + the_work: "Dzieło", + brainsweeping: "O Obrzynaniu Umysłów", + spellcircles: "Kręgi", + impetus: "Rdzenie", + directrix: "Zwrotnice", + akashiclib: "Biblioteki Akaszy", + quenching_allays: "Tłamszenie Otuszków", + fanciful_staves: "Wymyślne Kostury", + readers_guide: "Jak Czytać Ten Rozdział", + basics_pattern: "Podstawowe Symbole", + numbers: "Literały Liczbowe", + math: "Matematyka", + advanced_math: "Zaawansowana Matematyka", + sets: "Zbiory", + consts: "Stałe", + stackmanip: "Manipulacja Stosu", + logic: "Operacje Logiczne", + entities: "Byty", + types: "Typy", + lists: "Manipulacja Spisów", + patterns_as_iotas: "Uwalnianie Symboli", + advanced_escaping: "Zaawansowane Uwalnianie", + readwrite: "Wczytywanie i Zapisywanie", + circle_patterns: "Symbole Kręgów", + akashic_patterns: "Symbole Akaszy", + itempicking: "Działania na Przedmiotach", + basic_spell: "Podstawowe Zaklęcia", + blockworks: "Manipulacja Bloków", + nadirs: "Nadiry", + meta: "Meta-Analiza", + hexcasting_spell: "Tworzenie Czarujących Przedmiotów", + sentinels: "Wartownicy", + flights: "Lot", + weather_manip: "Manipulacja Pogody", + zeniths: "Zenity", + lore: { + cardamom1: "Kardamoma Steles, #1", + cardamom2: "Kardamoma Steles, #2", + cardamom3: "Kardamoma Steles, #3", + cardamom4: "Kardamoma Steles, #4", + cardamom5: "Kardamoma Steles, #5", + experiment1: "Raport Projektu Spętane Oczy", + experiment2: "Przesłuchania Spętanych Oczu", + inventory: "Dziennik Renowacji #72", + }, + interop: { + "": "Interakcje Między Modami", + gravity: "Zmiana Grawitacji", + pehkui: "Pehkui", + }, + }, + page: { + creative_items: { + "1": "Udało mi się wynaleźć parę teoretycznych przedmiotów, które da się skonstruować wyłącznie przez $(italic)kreatywne/$ sposoby.", + creative_unlocker: "$(#74b3f2)Kostka Przepływu/$ to prawie nieograniczone źródło mocy, którym mogę się posilić, by mieć nieskończony _przepływ, dla jakichkolwiek_ czarów, jakie sobie wymarzę. Jako dodatkowa zaleta, wygląda całkiem smacznie. Być może zjedzenie jej da mi więcej wiedzy o świecie, choć to byłoby wkraczanie na terytorium spojlerów...", + "2": "Dodatkowo, zmiana nazwy $(#74b3f2)Kostki Przepływu/$ na kowadle powinna pozwolić mi na testowanie i lepsze zrozumienie moich _Czarów. Jeżeli ktoś z Kreatywną kontrolą nad światem napotkał moje notatki, polecam wyłączyć ją przed próbowaniem następujących rzeczy.", + debug_media: { + title: "debug media", + desc: "Zmieniając nazwę $(#74b3f2)Kostki Przepływu/$ na 'debug media', otrzymam informacje zwrotne w okienku czatu na temat ilości zużytego przepływu.", + }, + }, + media: { + "1": "$(media)Przepływ/$ to forma psychicznej energii znajdującej się poza umysłem. Każda żywa istota produkuje śladowe ilości Przepływu myśląc o czymkolwiek; gdy dana myśl się kończy, przepływ przez nią wytworzony zostaje uwolniony na zewnątrz.$(br2)Sztuka rzucania czarów polega właśnie na kontrolowaniu przepływu i używaniu go, by giąć rzeczywistość do swojej woli.", + "2": "$(media)Przepływ/$ może wpływać na inne formy przepływu -- siła i typ ego wpływu mogą być zmienione przez tkanie $(media)przepływu/$ w glify.$(p)Uczeni tej sztuki używali $(media)przepływu/$ skupionego w formę grudki na końcu kija: machając nim w powietrzu w precyzyjnych sekwencjach, byli w stanie wpłynąć na wystarczająco $(media)przepływu/$ z wystarczającą precyzją, by wpłynąć na sam świat, co przyjmowało formę $(hex)czaru/$.", + "3": "Niestety, nawet w pełni świadoma istota (jak ja... chyba) może wyprodukować tylko nieznaczne ilości $(media)przepływu/$. Używanie samej siły woli do czarowania byłoby więc raczej niepraktyczne.$(br2) Według legend głęboko pod ziemią można znaleźć złoża, w których $(media)przepływ/$ skupia się i powoli rośnie w formie kryształu.$(p)Tylko jak je znaleźć...", + }, + }, }, "advancement.hexcasting:": { root: { From ef7afae15c762b8395a96c5fb17f1c09cad48226 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 39/50] chore(l10n): update Swedish translation chore(l10n): add Swedish translation chore(l10n): add Swedish translation Co-authored-by: Hauveli <136408450+hauveli@users.noreply.github.com> Co-authored-by: Hauveli Co-authored-by: Hexxy Weblate Language: Swedish Progress: 0.6% (9 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/sv/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/sv/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/sv_se.flatten.json5 | 19 +++++++++++++++++++ .../hexcasting/lang/sv_se.flatten.json5 | 1 + 2 files changed, 20 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/sv_se.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/sv_se.flatten.json5 diff --git a/Common/src/main/resources/assets/hexcasting/lang/sv_se.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/sv_se.flatten.json5 new file mode 100644 index 0000000000..9d5849d061 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/sv_se.flatten.json5 @@ -0,0 +1,19 @@ +{ + "item.hexcasting": { + book: "Hex-Anteckningsbok", + staff: { + oak: "Ekstav", + spruce: "Granstav", + birch: "Björkstav", + jungle: "Djungelstav", + acacia: "Akaciastav", + dark_oak: "Mörk Ekstav", + crimson: "Karmosinstav", + warped: "Förvrängd Stav", + mangrove: "Mangrovestav", + cherry: "Körsbärsstav", + bamboo: "Bambustav", + edified: "Upplyst Stav", + }, + }, +} diff --git a/doc/resources/assets/hexcasting/lang/sv_se.flatten.json5 b/doc/resources/assets/hexcasting/lang/sv_se.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/sv_se.flatten.json5 @@ -0,0 +1 @@ +{} From 1ff288bddd77a85c2cdcc87735c6333b24f2285c Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Fri, 21 Aug 2026 19:51:34 +0000 Subject: [PATCH 40/50] chore(l10n): update Finnish translation chore(l10n): update Finnish translation chore(l10n): add Finnish translation chore(l10n): add Finnish translation Co-authored-by: Hauveli <136408450+hauveli@users.noreply.github.com> Co-authored-by: Hauveli Co-authored-by: Hexxy Weblate Language: Finnish Progress: 1.1% (16 of 1386 strings) Progress: 1.7% (24 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/fi/ Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-hexdoc/fi/ Translation: Hex Casting/Common Translation: Hex Casting/hexdoc --- .../hexcasting/lang/fi_fi.flatten.json5 | 69 +++++++++++++++++++ .../hexcasting/lang/fi_fi.flatten.json5 | 1 + 2 files changed, 70 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/fi_fi.flatten.json5 create mode 100644 doc/resources/assets/hexcasting/lang/fi_fi.flatten.json5 diff --git a/Common/src/main/resources/assets/hexcasting/lang/fi_fi.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/fi_fi.flatten.json5 new file mode 100644 index 0000000000..cf6610ed4a --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/fi_fi.flatten.json5 @@ -0,0 +1,69 @@ +{ + "item.hexcasting": { + book: "Hex Muistivihko", + staff: { + oak: "Tammisauva", + spruce: "Kuusisauva", + birch: "Koivusauva", + jungle: "Viidakkopuusauva", + acacia: "Akaasiasauva", + dark_oak: "Tumma Tammisauva", + crimson: "Karmiinisauva", + warped: "Kummasauva", + mangrove: "Mangrovepuusauva", + cherry: "Kirsikkapuusauva", + bamboo: "Bambusauva", + edified: "Sivistetty Sauva", + }, + amethyst_dust: "Ametistijauhe", + charged_amethyst: "Jännitetty Ametisti", + scroll_small: { + "": "Pieni Käärö", + of: "Miten sait tämän %s-tavaran", + empty: "Tyhjä Pieni Käärö", + }, + scroll_medium: { + "": "Keskikokoinen Käärö", + of: "Miten sait tämän %s-tavaran", + empty: "Tyhjä Keskikokoinen Käärö", + }, + scroll: { + "": "Iso Käärö", + of: "%s-Muinaiskäärö", + empty: "Tyhjä Iso Käärö", + }, + focus: { + "": "Kohde", + }, + spellbook: "Loitsukirja", + abacus: "Helmitaulu", + lore_fragment: { + all: "Olen vissiin löytänyt kaiket tarinat tarjoilla tässä maailmassa.", + }, + }, + hexcasting: { + tooltip: { + spellbook: { + empty: { + "": "Tyhjä", + sealed: "Tyhjä (%s)", + }, + sealed: "Suljettu", + }, + scroll: { + needs_purchase: "Osta kuvion näyttyeksi", + pattern_not_loaded: "Pistä tavaraluetteloon kuvion näytöksi", + }, + list_contents: "[%s]", + lens: { + bee: { + single: "[%s] mehiläinen", + "": "[%s] mehiläisiä", + }, + }, + media: "%d jauhea", + media_amount: "Sisältää: %s (%s)", + "media_amount.advanced": "Sisältää: %s/%s (%s)", + }, + }, +} diff --git a/doc/resources/assets/hexcasting/lang/fi_fi.flatten.json5 b/doc/resources/assets/hexcasting/lang/fi_fi.flatten.json5 new file mode 100644 index 0000000000..0967ef424b --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/fi_fi.flatten.json5 @@ -0,0 +1 @@ +{} From cff36a82007db518ee61c64da13fee7b4e977423 Mon Sep 17 00:00:00 2001 From: Florian Meyer Date: Wed, 26 Aug 2026 01:35:00 +0000 Subject: [PATCH 41/50] fix: don't fail on lookup of non per-world pattern (#1277) Closes #849 The command is currently trying to look up canonical strokes for _every_ pattern instead of just the per-world patterns. This PR makes it skip patterns that do not have a per-world stroke order. --------- Co-authored-by: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> --- CHANGELOG.md | 1 + .../hexcasting/common/command/ListPerWorldPatternsCommand.java | 2 ++ 2 files changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3ebf36209..25aa40da87 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](https://github.com/FallingColors/HexMod/pull/1119)) @IridescentVoid - Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](https://github.com/FallingColors/HexMod/pull/1115)) @IridescentVoid - Fixed Break Block being unable to break cobwebs on Fabric ([#1218](https://github.com/FallingColors/HexMod/pull/1218)) @Robotgiggle +- Fixed the command to list all per-world patterns not working ([#1277](https://github.com/FallingColors/HexMod/pull/1277)) @Olfi01 ### Internal diff --git a/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java b/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java index 8180d5223b..1724b31d97 100644 --- a/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java +++ b/Common/src/main/java/at/petrak/hexcasting/common/command/ListPerWorldPatternsCommand.java @@ -75,6 +75,8 @@ private static int list(CommandSourceStack source) { for (var key : listing) { var pat = PatternRegistryManifest.getCanonicalStrokesPerWorld(key, ow); + if (pat == null) continue; // pattern doesn't appear to be a per-world pattern + source.sendSuccess(() -> Component.literal(key.location().toString()) .append(": ") .append(new PatternIota(pat).display()), false); From 26b1dc11cd6368cc51f6501470baf441da844939 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 26 Aug 2026 01:17:23 +0000 Subject: [PATCH 42/50] 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 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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 3fb206c388..614d12a195 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 @@ -427,7 +427,7 @@ }, big_cast: { "": "……吃穿不缺", - desc: "耗费巨量媒质以施放一个咒术", + desc: "耗费巨量媒质以施放一个法术", }, y_u_no_cast_angy: { "": "盲目绘制", @@ -1744,7 +1744,7 @@ break_block: "移除一个位置向量,然后破坏给定位置的方块。此法术能破坏几乎所有钻石镐能破坏的方块。$(br)消耗大约 1/8 个$(l:items/amethyst)$(item)紫水晶粉/$。破坏$(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)构筑的方块/$或$(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)构筑的光源/$时仅消耗极少量媒质。", create_water: "在给定位置生成一格水(或给流体容器注入至多一桶水)。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", destroy_water: "清空给定位置的流体容器,或是清除给定位置周围的液体。消耗大约 2 个$(l:items/amethyst)$(item)充能紫水晶/$。", - conjure_block: "在给定位置构筑一个空灵缥缈却坚硬可触的,闪着光的方块。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", + conjure_block: "在给定位置按照我的染色剂构筑一个空灵缥缈却坚硬可触的,闪着光的方块。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", conjure_light: "在给定位置构筑一个发着我染色剂颜色的光的魔法光源。消耗大约 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", bonemeal: "使目标位置的植物或树苗更快成长,就像对其施以$(item)骨粉/$一样。消耗略多于 1 个$(l:items/amethyst)$(item)紫水晶粉/$。", edify: "将$(media)媒质/$强制注入目标位置的树苗,使其长为$(l:items/edified)$(thing)启迪树/$。消耗大约 1 个$(l:items/amethyst)$(item)充能紫水晶/$。", From 4c188d5cf99721dcd6c38565dd1309b94ccf622f Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 26 Aug 2026 01:17:23 +0000 Subject: [PATCH 43/50] chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation chore(l10n): update French translation 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) Progress: 99.1% (1374 of 1386 strings) Progress: 99.4% (1379 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 | 560 ++++++++++-------- 1 file changed, 298 insertions(+), 262 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 7adcb64499..9e59e403c9 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 @@ -80,7 +80,7 @@ creative_unlocker: { "": "Le Cube de Média", for_emphasis: "MÉDIA INFINI", - tooltip: "À consommer pour débloquer toutes les connaissances sur la %s.", + tooltip: "À consommer pour débloquer toutes les connaissances sur %s.", mod_name: "Sorcellerie", }, focus: { @@ -92,7 +92,7 @@ "": "Fragment d’Histoire", all: "Il semblerait que j'ai découvert tout ce qu'il y avait à savoir sur l'Histoire de ce monde.", }, - lens: "Lentille de Divination", + lens: "Lentille Divinatoire", quenched_allay_shard: "Éclat d'Allay imprégné", uuid_colorizer: "Pigment d'Âme Scintillante", default_colorizer: "Pigment vide", @@ -111,7 +111,7 @@ conjured_block: "Bloc Conjuré", akashic_: { record: "Archive Akashique", - bookshelf: "Bibliothèque Akashique", + bookshelf: "Étagère Akashique", connector: "Ligature Akashique", }, slate: { @@ -127,7 +127,7 @@ pillar: "Pilier d'ardoise", }, amethyst_: { - dust_block: "Bloc de poudre d'améthyste", + dust_block: "Bloc de poussière d'améthyste", tiles: "Carreaux d'améthyste", bricks: "Briques d'améthyste", bricks_small: "Petites briques d'améthyste", @@ -246,19 +246,19 @@ directrices: "Directrices", seal_materials: "Matériel de scellé", brainswept_circle_components: "Composants de Cercle de Transfusion de Psyché", - grants_root_advancement: "Octroie la progression racine", + grants_root_advancement: "Octroie la progression d'origine", impeti: "Impeti", }, "text.autoconfig.hexcasting": { option: { common: { dustMediaAmount: { - "@Tooltip": "Combien de Média vaut une seule poussière d'améthyste", + "@Tooltip": "Combien de Média vaut une seule Poussière d'améthyste", "": "Quantité de Média de la Poussière d'améthyste", }, shardMediaAmount: { "": "Quantité de Média de l'Éclat d'améthyste", - "@Tooltip": "Combien de Média vaut un seul éclat d'améthyste", + "@Tooltip": "Combien de Média vaut un seul Éclat d'améthyste", }, chargedCrystalMediaAmount: { "": "Quantité de Média de l'Améthyste chargée", @@ -329,12 +329,12 @@ "": "Facteurs de multiplication des coûts par Action", }, greaterTeleportSplatsItems: { - "": "Téléportation Supérieure projette l'inventaire au sol", - "@Tooltip": "Projeter les objets hors de l'inventaire du joueur lorsqu'il utilise Téléportation Supérieure", + "": "Projection de l'inventaire avec Téléportation Supérieure", + "@Tooltip": "Définit si les objets doivent être projetés en dehors de l'inventaire du joueur lorsqu'il utilise Téléportation Supérieure", }, doesTrueNameHaveAmbit: { - "": "Est-ce que les Noms Véritables ont une portée", - "@Tooltip": "Les Noms Véritables (p. ex. référence à une Entité de joueur) permettent de cibler le joueur référencé même en dehors de la portée standard", + "": "Portée des Vrais Noms", + "@Tooltip": "Les Vrais Noms (référence à une Entité de joueur) permettent-ils de cibler le joueur référencé même en dehors de la portée standard", }, tpDimDenylist: { "": "Liste noire de Téléportation selon les dimensions", @@ -345,8 +345,8 @@ "@Tooltip": "Le nombre maximum d'Actions pouvant être exécutées pendant un tick pour éviter de congestionner le serveur.", }, maxSpellCircleLength: { - "": "Longueur maximal d'un Cercle de Sorts", - "@Tooltip": "Nombre maximum d'ardoises dans un Cercle de Sorts", + "": "Longueur maximal d'un Cercle Runique", + "@Tooltip": "Nombre maximum d'ardoises dans un Cercle Runique", }, actionDenyList: { "": "Liste noire d'Actions", @@ -358,7 +358,7 @@ }, globalCostScaling: { "": "Facteur de multiplication global des coûts", - "@Tooltip": "Tous les coûts en $(#b38ef3)Média/$, sauf celui des Actions avec le tag #hexcasting:cannot_modify_cost, seront multipliées par cette valeur. Si vous voulez modifier le coût d'une Action avec le tag sus-nommé, utilisez la liste de facteurs de multiplication par action.", + "@Tooltip": "Tous les coûts en $(media)Média/$, sauf celui des Actions avec le tag #hexcasting:cannot_modify_cost, seront multipliées par cette valeur. Si vous voulez modifier le coût d'une Action avec le tag sus-nommé, utilisez la liste de facteurs de multiplication par action.", }, traderScrollChance: { "": "Chance d'un Parchemin chez un vendeur itinérant", @@ -385,12 +385,12 @@ "@Tooltip": "Les chances qu'un Talisman antique apparaisse dans n'importe laquelle des tables de butin ci-dessus.", }, amethystShardModification: { - "": "Changement du taux d'apparition des éclats d'améthyste", - "@Tooltip": "De combien le nombre d'éclats d'améthyste tombés d'un amas d'améthyste est augmenté/réduit.", + "": "Changement du taux d'apparition des Éclats d'améthyste", + "@Tooltip": "De combien le nombre d'Éclats d'améthyste tombés d'un amas d'améthyste est augmenté/réduit.", }, villagersOffendedByMindMurder: { "": "Villageois offensés par la Transfusion de Psyché", - "@Tooltip": "Les villageois devraient se mettre en colère contre le joueur après avoir été témoin d'une Déchirure Mentale", + "@Tooltip": "Les villageois se mettent-ils en colère contre le joueur après avoir été témoin d'une Déchirure Mentale", }, }, }, @@ -423,7 +423,7 @@ }, root: { desc: "Trouver et miner une forme concentrée de Média qui se développait profondément sous la terre.", - "": "Études de Sorcellerie", + "": "Études de la Sorcellerie", }, big_cast: { "": "...n'a rien", @@ -435,7 +435,7 @@ }, opened_eyes: { "": "Yeux ouverts", - desc: "Laisser Mère Nature prendre un bout de votre esprit en paiement pour l'exécution de votre Sortilège. Que pourrait-il se passer si vous La laissiez en avoir plus ?", + desc: "Laisser Mère-Nature prendre un bout de votre esprit en paiement pour l'exécution de votre Sortilège. Que pourrait-il se passer si vous La laissiez en avoir plus ?", }, lore: { "": "Historien de la Sorcellerie", @@ -530,9 +530,9 @@ arccos: "Purification de Cosinus Inverse", arctan: "Purification de Tangente Inverse", coerce_axial: "Purification Axiale", - "read/entity": "Purification du Chroniqueur", + "read/entity": "Purif. du Chroniqueur", "readable/entity": "Purification de l'Auditeur", - "writable/entity": "Purification de l'Évaluateur", + "writable/entity": "Purif. de l'Évaluateur", "flight/can_fly": "Purification de l'Aviateur", "interop/": { "gravity/": { @@ -569,7 +569,7 @@ halt: "Gambit de Charon", unappend: "Décomposition Dérivative", deconstruct: "Décomposition de l'Orateur", - duplicate: "Décomposition du Gémeaux", + duplicate: "Décomp. du Gémeaux", splat: "Désintégration de la Meute", deconstruct_vec: "Désintégration Vectorielle", slice: "Exaltation Sélective", @@ -652,7 +652,7 @@ cycle_variant: "Charme de l'Ensorceleur", "sentinel/": { create: "Invocation de Sentinelle", - "create/great": "Invocation de Sentinelle Supérieure", + "create/great": "Sentinelle Supérieure", destroy: "Exil de Sentinelle", get_pos: "Localisation de Sentinelle", wayfind: "Voie de la Sentinelle", @@ -722,57 +722,57 @@ y: "Reflet Vectoriel +Y/-Y", z: "Reflet Vectoriel +Z/-Z", }, - "read/entity": "Purification du Chroniqueur", + "read/entity": "Purif. du Chroniqueur", bool_to_number: "Purification du Numérologue", }, }, page: { "101": { - "4": "Il est important de noter que l'$(italic)orientation/$ d'une Rune ne compte pas vraiment . Ces Runes font toutes deux référence à la même action : $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, par exemple .", + "4": "Il est important de noter que l'$(italic)orientation/$ d'une Rune ne compte pas vraiment. Ces Runes font toutes deux référence à la même action : $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, par exemple.", "6": "Par example, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ crée un Iota qui me représente $(italic)moi/$, l'ensorceleur et l'ajoute par dessus la Stack. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$ prend l'Iota tout en haut de la Stack, s'il représente une Entité et le transforme en Iota qui reflète la position de cette Entité.$(br2)Donc, dessiner ces Runes dans cet ordre là aurait pour résultat un Iota sur la Stack qui représente ma position.", - "9": "Bien sûr, rien n'est gratuit dans la vie. Tous les Sorts et quelques autres Actions demandent du $(#b38ef3)Média/$ comme paiement.$(br2)Du mieux que je le comprenne un $(#b38ef3)Sortilège/$ est un peu comme un plan d'action que l'on présente à Mère Nature-- Dans cette analogie, le $(#b38ef3)Média/$ est utilisé pour fournir les arguments qui le justifient, donc Mère Nature accepte ton plan et le mène à ses fins.", - "12": "Je devrais faire bien attention de vraiment avoir suffisamment d'améthyste dans mon inventaire-- certains textes antiques disent que Mère Nature accepte avec joie l'esprit des ensorceleurs comme paiement à la place. Ils décrivent le ressenti comme abominable mais bizarrement euphorique, \"[...] une effervescente dissolution de lumière et d'énergie...\" Peut-être est-ce pourquoi tous les vieux maîtres de cette discipline ont fini par perdre la tête. J'imagine que brûler des morceaux de ma psyché pour de la puissance ne doit pas $(italic)être très bon pour la santé/$.", + "9": "Bien sûr, rien n'est gratuit dans la vie. Tous les Sorts et quelques autres Actions demandent du $(media)Média/$ comme paiement.$(br2)Du mieux que je le comprenne un $(hex)Sortilège/$ est un peu comme un plan d'action que l'on présente à Mère Nature-- Dans cette analogie, le $(media)Média/$ est utilisé pour fournir les arguments qui le justifient, donc Mère-Nature accepte ton plan et le mène à ses fins.", + "12": "Je devrais faire bien attention de vraiment avoir suffisamment d'améthyste dans mon inventaire-- certains textes antiques disent que Mère-Nature accepte avec joie l'esprit des ensorceleurs comme paiement à la place. Ils décrivent le ressenti comme abominable mais bizarrement euphorique, \"[...] une effervescente dissolution de lumière et d'énergie...\" Peut-être est-ce pourquoi tous les vieux maîtres de cette discipline ont fini par perdre la tête. J'imagine que brûler des morceaux de ma psyché pour de la puissance ne doit pas $(italic)être très bon pour la santé/$.", "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 $(#b38ef3)Sortilèges/$ est plutôt difficile-- pas étonnant que cet art avait disparu dans les sables du temps ! Je vais devoir lire et relire mes notes méticuleusement.$(br2) Je peux commencer un $(#b38ef3)Sortilège en appuyant sur $(k:use) avec un $(l:items/staff)$(item)Sceptre/$ dans la main-- en 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 $(#b38ef3)Média de la Grille ; terminer une Rune executera son Action associée (plus d'infos un peu plus loin).", - "2": "Une fois que j'ai dessiné suffisamment de Runes pour lancer mon Sortilège, la Grille disparaîtra tandis que le $(#b38ef3)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-- elles sont ce que j'utilise pour manipuler le $(#b38ef3)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 $(#b38ef3)Média/$ d'une manière propre à elles-mêmes, et lorsque ces influences font quelque chose d'utile, on appelle ça une Action. $(br2)Le $(#b38ef3)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 $(#b38ef3)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 $(#b38ef3)Sortilège/$, je crée une Stack vierge. Les Actions manipulent le dessus de cette Stack.", + "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.", + "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.", - "10": "Mis-à-part ça, on dirait que personne n'a fait beaucoup de recherches sur la valeur $(italic)exacte/$ en Média de n'importe quel morceau d'$(l:items/amethyst)$(item)améthyste/$. D'autant que je le sache, un $(l:items/amethyst)$(item)éclat d'améthyste/$ vaut cinq $(l:items/amethyst)$(item)poussières d'améthyste/$ et une $(l:items/amethyst)$(item)améthyste chargée/$ en vaut dix.$(br2)Bizarrement, on dirait qu'il n'y a pas d'autres forme d'$(l:items/amethyst)$(item)améthyste/$ adaptée à la conception de $(#b38ef3)Sortilèges/$. Je suspecte que les blocs entiers ou les amas de cristaux sont trop solides pour être aisément converti en $(#b38ef3)Média/$.", - "11": "Il est aussi important de noter que chaque Action va consommer le $(#b38ef3)Média/$ dont il a besoin immédiatement, au lieu de tout prendre d'un coup lorsque le Sortilège se lance. D'ailleurs, une Action consommera toujours des objets entiers-- une Action qui ne requiert qu'une $(l:items/amethyst)$(item)poussière d'améthyste/$ consommera une $(l:items/amethyst)$(item)améthyste chargée/$ entière si c'est la seule chose dont je dispose dans mon inventaire.$(br2)Il serait donc judicieux d'aussi apporter de la poussière pour la conception de Sortilèges-- Mais qui ne tente rien, n'a rien...", + "10": "Mis-à-part ça, on dirait que personne n'a fait beaucoup de recherches sur la valeur $(italic)exacte/$ en Média de n'importe quel morceau d'$(l:items/amethyst)$(item)améthyste/$. D'autant que je le sache, un $(l:items/amethyst)$(item)Éclat d'améthyste/$ vaut cinq $(l:items/amethyst)$(item)Poussières d'améthyste/$ et une $(l:items/amethyst)$(item)Améthyste chargée/$ en vaut dix.$(br2)Bizarrement, on dirait qu'il n'y a pas d'autres forme d'$(l:items/amethyst)$(item)améthyste/$ adaptée à la conception de $(hex)Sortilèges/$. Je suspecte que les blocs entiers ou les amas de cristaux sont trop solides pour être aisément converti en $(media)Média/$.", + "11": "Il est aussi important de noter que chaque Action va consommer le $(media)Média/$ dont il a besoin immédiatement, au lieu de tout prendre d'un coup lorsque le Sortilège se lance. D'ailleurs, une Action consommera toujours des objets entiers-- une Action qui ne requiert qu'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ consommera une $(l:items/amethyst)$(item)Améthyste chargée/$ entière si c'est la seule chose dont je dispose dans mon inventaire.$(br2)Il serait donc judicieux d'aussi apporter de la poussière pour la conception de Sortilèges-- Mais qui ne tente rien, n'a rien...", "13": "Peut-être que quelque chose a changé après tout. Lors de mes expérimentations, je n'y suis jamais parvenu ; si je tombe à court de $(media)média/$, le sort échouera juste, comme si une barrière l'empêchait de me blesser.$(br2)Il serait intéressant de creuser au plus profond de ce mystère, mais je suppose que pour l'instant elle me gardera en sécurité.", "14": "J'ai aussi découvert un court texte amusant qui expliquerait pourquoi tant de practiciens de la magie en général finissent par perdre la tête, que j'apprécierai sûrement comme de la petite lecture de loisir non canonique de ce monde. $(br2)$(italic)Avertissement : légère horreur corporelle et éléments suggestifs./$", "14.link_text": "Blog de Goblin Punch", "15": "Enfin, il semblerait que les Sorts aient une limite dans leur portée, environ 32 blocs de distance par rapport à ma position. Essayer d'affecter quoi que ce soit en dehors de cette zone causera l'échec de mon Sort.$(br2) Malgré ça, si j'ai la référence d'un Joueur, je peux l'atteindre de n'importe où. Bon, ça ne marche que sur eux directement par contre ; je ne peux pas utiliser ce fait pour affecter le monde autour d'eux s'ils sont en dehors de ma portée.$(br)Je devrais faire bien attention avant de donner une référence comme ça. Si un ensorceleur bienveillant pourrait l'utiliser sagement et avec diligence, j'en tremble d'imaginer ce que quelqu'un de malintentionné pourrait en faire.", }, couldnt_cast: { - "3": "... Après mûre réflexion... J'ai découvert un changement dans mon corps .$(p)Il semblerait qu'à la place d'utiliser de l'$(l:items/amethyst)$(item)améthyste/$, je suis maintenant capable de lancer des Sorts en utilisant ma propre force vitale et mentale-- exactement comme dans les légendes d'autrefois .$(p)Maintenant que j'y pense, je ne suis pas sûr de savoir pourquoi j'en suis capable. C'est juste que... la vérité-science-fardeau a toujours été là, et je peux la voir clairement désormais . Je la connais . Je l'endure .$(br2)Bienheureusement, je suis également bien conscient de mes limites-- Je pense avoir accès à approximativement deux cristaux d'$(l:items/amethyst)$(item)améthyste chargée/$ de $(#b38ef3)Média/$ lorsque ma santé est à son sommet.", - "1": "Argh! Pourquoi est-ce qu'Elle ne me laisse pas lancer le Sort ?!$(br2)Le parchemin que j'ai trouvé résonne d'authenticité. Je peux le $(italic)sentir/$ vibrer dans le parchemin-- la Rune est vraie, ou du moins aussi vraie qu'une Rune peut l'être. Le Sort est $(italic)juste là/$.$(p)Mais on dirait qu'elle se cache de l'autre côté d'une sorte de voile. Je l'ai appelé-- il a essayé de se manifester-- mais il ne $(italic)POUVAIT PAS/$.", + "3": "... Après mûre réflexion... J'ai découvert un changement dans mon corps .$(p)Il semblerait qu'à la place d'utiliser de l'$(l:items/amethyst)$(item)améthyste/$, je suis maintenant capable de lancer des Sorts en utilisant ma propre force vitale et mentale-- exactement comme dans les légendes d'autrefois .$(p)Maintenant que j'y pense, je ne suis pas sûr de savoir pourquoi j'en suis capable. C'est juste que... la vérité-science-fardeau a toujours été là, et je peux la voir clairement désormais. Je la connais. Je l'endure .$(br2)Bienheureusement, je suis également bien conscient de mes limites-- Je pense avoir accès à approximativement deux cristaux d'$(l:items/amethyst)$(item)Améthyste chargée/$ de $(media)Média/$ lorsque ma santé est à son sommet.", + "1": "Argh ! Pourquoi est-ce qu'Elle ne me laisse pas lancer le Sort ?!$(br2)Le parchemin que j'ai trouvé résonne d'authenticité. Je peux le $(italic)sentir/$ vibrer dans le parchemin-- la Rune est vraie, ou du moins aussi vraie qu'une Rune peut l'être. Le Sort est $(italic)juste là/$.$(p)Mais on dirait qu'elle se cache de l'autre côté d'une sorte de voile. Je l'ai appelé-- il a essayé de se manifester-- mais il ne $(italic)POUVAIT PAS/$.", "2": "On dirait que la barrière s'est légèrement affaiblie avec la force que j'ai exercé qur le Sort ; pourtant malgré tous mes efforts-- ma concentration la plus profonde, mon améthyste la plus pure, mes dessins les plus précis-- La barrière $(italic)refuse/$ de se laisser traverser. Ça me rend dingue.$(p)C'est $(italic)ici/$ que mes recherches s'arrêtent ? Maudit par mon impuissance, forcé d'abandonner les pouvoirs qui me reviennent de droit?$(br2)Je dois respirer un bon coup. Je devrais méditer sur ce que j'ai appris, même si ce n'était pas grand-chose...", "4": "J'en tremble rien qu'à l'idée-- J'ai gardé ma psyché intacte jusqu'à maintenant, dans mes recherches. Mais le fait est-- Je forme une moitié d'un lien précaire.$(p)Je suis connecté à une autre moitié-- une moitié dont les frontières ont faibli à cause de ce traumatisme. Un endroit où de simples Actions écrivent une gloire éternelle.$(p)Ai-je vraiment tord de vouloir y accéder pour mes fins ?", }, stack: { - "3": "Les actions sont (pour la plupart) sont limitées aux interactions avec le stack de sorcellerie de ces façons là. Ils vont prendre les iotas qui les intéressent (aussi connus comme \"arguments\" ou \"paramètres\"), puis les traiter et pousser une certaines quantité de résultats.$(br2)Bien évidemment, certaines actions (p. ex. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$) peuvent ne pas donner d'arguments et d'autres actions (en particulier les sorts) peuvent ne rien produire après coup.", - "4": "Des actions encore plus complexes peuvent être exprimées avec des termes comme pousser, prendre et observer. Par exemple, le $(l:patterns/stackmanip#hexcasting:swap)$(action)Gambit du Fou/$ échange les deux iotas du dessus de la stack. Cela peut être visualisé comme prendre deux iotas et les pousser dans l'ordre inverse. Autre exemple, la $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Décomposition du Gémeaux/$ duplique le sommet de la stack -- en d'autres mots, on observe la stack et on pousse une copie de ce que l'on trouve.", + "3": "Les actions sont (pour la plupart) sont limitées aux interactions avec la Stack de sorcellerie de ces façons là. Ils vont prendre les iotas qui les intéressent (aussi connus comme \"arguments\" ou \"paramètres\"), puis les traiter et pousser une certaines quantité de résultats.$(br2)Bien évidemment, certaines actions (p. ex. $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$) peuvent ne pas donner d'arguments et d'autres actions (en particulier les sorts) peuvent ne rien produire après coup.", + "4": "Des actions encore plus complexes peuvent être exprimées avec des termes comme pousser, prendre et observer. Par exemple, le $(l:patterns/stackmanip#hexcasting:swap)$(action)Gambit du Fou/$ échange les deux iotas du dessus de la Stack. Cela peut être visualisé comme prendre deux iotas et les pousser dans l'ordre inverse. Autre exemple, la $(l:patterns/stackmanip#hexcasting:duplicate)$(action)Décomposition du Gémeaux/$ duplique le sommet de la Stack -- en d'autres mots, on observe la Stack et on pousse une copie de ce que l'on trouve.", "1": "La $(thing)Stack/$, aussi appelée \"LIFO\", est un concept tiré des sciences informatiques. En résumé, c'est un ensemble de choses placées de sorte qu'on ne puisse interagir qu'avec les informations les plus récentes.$(br2)Visualisez une pile d'assiettes : On rajoute les nouvelles assiettes par-dessus et si vous prendre des assiettes au milieu de la pile, il faudra retirer toutes celles qui la recouvrent avant.", "2": "Puisque la Stack est un concept simple, il n'y a que quelques moyens précis d'interagir avec :$(li)$(italic)Ajouter quelque chose sur le dessus/$, aussi connu sous le nom de \"pousser\" ;$(li)$(italic)Retirer le dernier élément/$, aussi connu sous le nom de \"prendre\" ;$(li)$(italic)Examiner ou modifier le dernier élément/$, aussi connu sous le nom \"d'observer\".$(br)Le dernier élément ajouté à la Stack est appelé \"le haut\" ou \"le sommet\", toujours dans l'analogie de la pile d'assiettes.$(p)Par exemple, si l'on pousse 1, puis que l'on pousse 2, puis que l'on prend une valeur, le sommet de la Stack sera 1.", }, naming: { - "2": "$(li)Un $(thing)Reflet/$ ne prend rien et pousse un iota. $(li)Une $(thing)Purification/$ prend un iota et en pousse un autre. $(li)Une $(thing)Distillation/$ prend deux iotas et n'en pousse qu'un seul. $(li)Une $(thing)Exaltation/$ prend trois iotas ou plus et n'en pousse qu'un seul. $(li)Une $(thing)Décomposition/$ prend un argument et en pousse deux autres. $(li)Une $(thing)Désintégration/$ en prend une et en pousse trois ou plus. $(li)Enfin, un $(thing)Gambit/$ en pousse ou en prend n'importe quel autre nombre (ou il manipule le stack d'une quelconque autre manière).", + "2": "$(li)Un $(thing)Reflet/$ ne prend rien et pousse un iota. $(li)Une $(thing)Purification/$ prend un iota et en pousse un autre. $(li)Une $(thing)Distillation/$ prend deux iotas et n'en pousse qu'un seul. $(li)Une $(thing)Exaltation/$ prend trois iotas ou plus et n'en pousse qu'un seul. $(li)Une $(thing)Décomposition/$ prend un argument et en pousse deux autres. $(li)Une $(thing)Désintégration/$ en prend une et en pousse trois ou plus. $(li)Enfin, les $(thing)Gambits/$ regroupent tous les autres genres de manipulation.", "3": "Les Sorts semblent être une exception à cette nomenclature et sont plus ou moins nommés en fonction de ce qu'ils font -- après tout, pourquoi appeler un Sort $(action)Gambit de Demoman/$ quand on peut juste dire $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$ ?", "1": "Les noms donnés aux actions par les anciens sont pour le moins particuliers, mais je pense qu'il y a tout de même une logique.$(br2)Les actions semblent regroupées avec des noms précis, selon le nombre d'iotas qu'elles retirent et ajoutent à la Stack.", }, thought_knot: { - "2": "Quand je le craft il ne contient pas d'iota. En utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ en tenant un $(item)Noeud-Pensée/$ dans mon autre main, j'enlève l'iota sur la stack et l'enregistre dans le $(item)Noeud-Pensée/$. En utilisant le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, je copie l'iota contenu dans le $(item)Noeud-Pensée/$ et l'ajoute sur la stack.$(br2)Une fois que l'on a écrit dans un $(item)Noeud-Pensée/$, son fil est inexorablement noué ; l'iota peut être lu autant de fois que voulu, mais il est impossible d'effacer ou de remplacer son contenu. Heureusement qu'ils ne sont pas chers à produire.", - "3": "D'ailleurs, si j'enregistre une entité dans un $(item)Noeud-Pensée/$ et que j'essaye de le rappeler après la mort ou la disparition de l'entité, le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$ ajoutera $(thing)Null/$ au stack à son lieu.", + "2": "Quand je le craft il ne contient pas d'iota. En utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ en tenant un $(item)Noeud-Pensée/$ dans mon autre main, j'enlève l'iota sur la Stack et l'enregistre dans le $(item)Noeud-Pensée/$. En utilisant le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, je copie l'iota contenu dans le $(item)Noeud-Pensée/$ et l'ajoute sur la Stack.$(br2)Une fois que l'on a écrit dans un $(item)Noeud-Pensée/$, son fil est inexorablement noué ; l'iota peut être lu autant de fois que voulu, mais il est impossible d'effacer ou de remplacer son contenu. Heureusement qu'ils ne sont pas chers à produire.", + "3": "D'ailleurs, si j'enregistre une entité dans un $(item)Noeud-Pensée/$ et que j'essaye de le rappeler après la mort ou la disparition de l'entité, le $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$ ajoutera $(thing)Null/$ à la Stack à son lieu.", "crafting.desc": "$(italic)Comment te sentirais-tu si quelqu'un te voyait porter une pancarte qui disait : \"Je suis beau et intrépide?\"/$", "1": "Les gens distraits attachent parfois un bout de ficelle à leur doigt pour les aider à se rappeler de quelque chose d'important. Je pense pouvoir utiliser cette idée dans mon art. En nouant du fil d'une façon spécifique, je devrais pouvoir conserver un iota stable, en dehors de ma Stack.$(br2)J'appellerai mon invention le $(item)Nœud-Pensée/$.", }, spellcircles: { - "2": "Pour commencer le rituel j'ai besoin d'un $(l:greatwork/impetus)$(item)Impetus/$ pour créer une vague de $(#b38ef3)Média/$ auto-suffisante. Cette vague voyage au travers d'$(l:items/slate)$(item)slates/$ ou d'autres blocks adaptés, activant chaque rune qu'elle rencontre.$(br2)S'il n'y a aucun moyen pour la vague de rejoindre l'$(l:greatwork/impetus)$(item)Impetus/$, le rituel échouera immédiatement. Il faut également prendre en compte que la direction dans laquelle la vague sort d'un block DOIT être claire, ou le rituel échouera au block avec trop de voisins.", - "4": "Miracle parmi les miracles, le cercle ne consommera ni le $(#b38ef3)Média/$ de mon inventaire ni de mon esprit. A la place, des éclats cristallisés de $(#b38ef3)Média/$ doivent être fournis à l'$(l:greatwork/impetus)$(item)Impetus/$ via un entonnoir, ou des méthodes similaires.$(br2)L'utilisation d'une $(l:items/lens)$(item)Lentille Divinatoire/$ montrera combien de $(#b38ef3)Média/$ est contenu dans l'$(l:greatwork/impetus)$(item)Impetus/$, en équivalent de poussière.", - "7": "J'ai aussi trouvé un croquis d'un Cercle de Sorts utilisé par les anciens enfoui quelque part dans mes notes . Sur l'autre page se trouve ma copie (bien que de piètre qualité) de celui-ci .$(br2)Les runes là-dessus auraient été éxécutées dans le sens inverse des aiguilles d'une montre, en commençant par le $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ et en se terminant par $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Téléportation Supérieure/$.", + "2": "Pour commencer le rituel j'ai besoin d'un $(l:greatwork/impetus)$(item)Impetus/$ pour créer une vague de $(media)Média/$ auto-suffisante. Cette vague voyage au travers d'$(l:items/slate)$(item)slates/$ ou d'autres blocs adaptés, activant chaque Rune qu'elle rencontre.$(br2)S'il n'y a aucun moyen pour la vague de rejoindre l'$(l:greatwork/impetus)$(item)Impetus/$, le rituel échouera immédiatement. Il faut également prendre en compte que la direction dans laquelle la vague sort d'un bloc DOIT être claire, ou le rituel échouera au bloc avec trop de voisins.", + "4": "Miracle parmi les miracles, le cercle ne consommera ni le $(media)Média/$ de mon inventaire ni de mon esprit. A la place, des éclats cristallisés de $(media)Média/$ doivent être fournis à l'$(l:greatwork/impetus)$(item)Impetus/$ via un entonnoir, ou des méthodes similaires.$(br2)L'utilisation d'une $(l:items/lens)$(item)Lentille Divinatoire/$ montrera combien de $(media)Média/$ est contenu dans l'$(l:greatwork/impetus)$(item)Impetus/$, en équivalent de poussière.", + "7": "J'ai aussi trouvé un croquis d'un Cercle Runique utilisé par les anciens enfoui quelque part dans mes notes. Sur l'autre page se trouve ma copie (bien que de piètre qualité) de celui-ci.$(br2)Les runes là-dessus auraient été éxécutées dans le sens inverse des aiguilles d'une montre, en commençant par le $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$ et en se terminant par $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)Téléportation Supérieure/$.", "teleport_circle.title": "Cercle de Téléportation", "1": "Je SAIS à quoi servent les $(l:items/slate)$(item)ardoises/$. Les grands assemblages perdus au cours du temps. Les runes inscrites sur elles peuvent être activées en suivant une séquence, automatiquement. Pouvoir et pensées se répercutent au travers, une par une par une par une par une au travers et au travers et AU TRAVERS ET -- Je ne dois pas je ne dois pas je devrais savoir qu'il ne faut pas penser comme ça.", "3": "Le résultat, c'est que les bordures du \"Cercle\" Runique peuvent être de n'importe quelle forme, concave ou convexe, et peuvent être orientées dans n'importe quel sens. En fait, avec l'aide de certains blocs, il est possible de réaliser un Cercle Runique qui s'étend sur trois dimensions. Je doute qu'une telle bizarrerie soit particulièrement utile, mais je dois m'autoriser un peu de légèreté futile pour encourager mon vulgaire esprit à continuer son travail.", @@ -780,12 +780,12 @@ "6": "Il y a aussi une limite dans le nombre de blocs que la vague peut traverser avant de s'étioler, mais ce nombre est assez grand pour que je doute avoir le moindre problème.$(br2)À l'inverse, il y a aussi certaines actions qui ne peuvent être utilisées que depuis un cercle. Heureusement, aucune d'entre elles ne sont mes sorts ; Il semblerait qu'elles n'aient à faire qu'avec les composants du cercle lui-même. Mes notes à ce sujet se trouvent $(l:patterns/circle)ici/$.", }, impetus: { - "1": "La fluctuation de $(#b38ef3)Média/$ nécessaire pour activer un Cercle de Sorts est complexe. Même les mortels avec les yeux les plus aiguisés et les mains les plus agiles ne pourrait pas servir d'$(l:greatwork/impetus)$(item)Impetus/$ et tisser le $(#b38ef3)Média/$ en l'ouroboros auto-suffisant nécessaire.$(br2)Le problème c'est que l'esprit est trop rempli d'autres $(italics)pensées parasites/$ inutiles.", + "1": "La fluctuation de $(media)Média/$ nécessaire pour activer un Cercle Runique est complexe. Même les mortels avec les yeux les plus aiguisés et les mains les plus agiles ne pourrait pas servir d'$(l:greatwork/impetus)$(item)Impetus/$ et tisser le $(media)Média/$ en l'ouroboros auto-suffisant nécessaire.$(br2)Le problème c'est que l'esprit est trop rempli d'autres $(italics)pensées parasites/$ inutiles.", "3": "Il y a plusieurs solutions à cette énigme : en utilisant des techniques de méditation il est possible d'apprendre à vider son esprit, même si je ne suis pas sûr qu'un esprit suffisamment vide pour activer un Cercle peut se concentrer assez fort pour mener la tâche à bien. $(br2)Certaines substances douteuses peuvent créer un effet similaire, mais je ne sais rien sur elles et je n'ai pas l'intention d'apprendre. Je ne peux pas compter sur les procédés chimiques de mon cerveau.", - "4": "La solution que je compte utiliser donc, c'est spécialiser une psyché. Je vais la libérer de la tyrannie des nerfs, couper toutes ses sorties à part quelques délicats appareils de manipulation de $(#b38ef3)Média/$, cautériser toutes ses entrées mais le signal pour commencer son travail. $(br2)Le processus de $(l:greatwork/brainsweeping)$(action)transfusion de psyché/$ dont je suis maintenant intimement familier fera parfaitement l'affaire ; l'esprit d'un villageois est suffisamment complexe pour faire le travail, mais pas assez pour résister l'information.", + "4": "La solution que je compte utiliser donc, c'est spécialiser une psyché. Je vais la libérer de la tyrannie des nerfs, couper toutes ses sorties à part quelques délicats appareils de manipulation de $(media)Média/$, cautériser toutes ses entrées mais le signal pour commencer son travail. $(br2)Le processus de $(l:greatwork/brainsweeping)$(action)transfusion de psyché/$ dont je suis maintenant intimement familier fera parfaitement l'affaire ; l'esprit d'un villageois est suffisamment complexe pour faire le travail, mais pas assez pour résister l'information.", impetus_look: "Un $(l:greatwork/impetus)$(item)Impetus de Fléchier/$ s'active après avoir été observé pendant un temps.", "2": "Sur un... plan métaphysique -- Je dois faire attention avec ce genre de pensées, je ne dois pas me perdre, je suis devenu trop précieux -- déplacer le $(media)média/$ déplace l'esprit, et l'esprit doit être déplacé pour que le processus fonctionne. Mais l'esprit est trop $(italic)lourd/$ avec toutes ses pensées pour se déplacer avec assez d'agilité.$(br2)C'est comme si un artisan tentait de réparer une montre avec des moufles.", - empty_impetus: "Premièrement, le berceau. Bien que cela ne remplace pas $(l:greatwork/impetus)$(item)Impetus/$, le flot de $(media)média/$ dans un cercle ne sortira que par le côté pointé par les flèches. Cela me permet de changer le plan dans lequel le flot s'écoule, par exemple.", + empty_impetus: "Premièrement, le berceau. Bien que cela ne remplace pas $(l:greatwork/impetus)$(item)Impetus/$, le flot de $(media)Média/$ dans un cercle ne sortira que par le côté pointé par les flèches. Cela me permet de changer le plan dans lequel le flot s'écoule, par exemple.", impetus_rightclick: "Maintenant, pour transposer l'esprit. Les Villageois de différentes professions tendront à modifier les conditions d'activation de l'$(l:greatwork/impetus)$(item)Impetus/$ qui en résulte. Un $(l:greatwork/impetus)$(item)Impetus de Forgeron/$ s'activera simplement avec $(k:use).", impetus_storedplayer: { "1": "Un $(l:greatwork/impetus)$(item)Impetus de Clerc/$ s'activera en recevant un signal de redstone. Il peut être lié à un joueur avec un objet qui contiendrait une telle référence, comme un $(l:items/focus)$(item)Focus/$, en l'utilisant sur le bloc.", @@ -795,22 +795,22 @@ casting: { iotas: { "3": "Généralement, je fournis des Iotas à des Actions. Par exemple, prenons $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$. Ce Sort nécessite un Iota numérique, pour indiquer sa force, et un Iota vectoriel, pour indiquer sa position.$(br2)Ou alors, prenons $(l:patterns/basic#hexcasting:get_pos)$(action)Purification de la Boussole/$. Il prend un Iota d'Entité et le transforme en un Iota vectoriel, qui représente la position de cette entité.", - "1": "Les \"noms\" dans la langue de Mère Nature sont appelés des $(thing)Iotas/$. Au niveau le plus bas, la Sorcellerie est l'art de manipuler les Iotas.$(br2)Il existe de nombreuses variétés d'Iotas:$(li)Les Nombres (que certaines légendes appelent \"doubles\").$(li)Les Vecteurs, une collection de trois nombres qui représentent une position, un mouvement ou une direction.$(li)Les Booléens ou juste \"bool\" pour faire court, qui représentent un Vrai ou un Faux abstrait.$(li)Les Entités, comme moi-même, les poulets et les wagons.", + "1": "Les \"noms\" dans la langue de Mère-Nature sont appelés des $(thing)Iotas/$. Au niveau le plus bas, la Sorcellerie est l'art de manipuler les Iotas.$(br2)Il existe de nombreuses variétés d'Iotas:$(li)Les Nombres (que certaines légendes appelent \"doubles\").$(li)Les Vecteurs, une collection de trois nombres qui représentent une position, un mouvement ou une direction.$(li)Les Booléens ou juste \"bool\" pour faire court, qui représentent un Vrai ou un Faux abstrait.$(li)Les Entités, comme moi-même, les poulets et les wagons.", "2": "$(li)Les Influences, des Iotas qui représentent des idées abstraites variées comme l'absence de données ($(thing)Null/$) ou du 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.", }, grid: { - "1": "Je fournis généralement mes Runes à Mère Nature grâce à mon $(l:items/staff)$(item)Sceptre/$ . Quand j'appuie sur $(thing)$(k:use)/$ avec un Sceptre dans l'une de mes mains une Grille hexagonale de petits points apparait devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour tracer et relâcher pour terminer de dessiner mes Runes . $(br2) Une fois la Rune relâchée, elle est exécutée (voir chapitre suivant) .", + "1": "Je fournis généralement mes Runes à Mère-Nature grâce à mon $(l:items/staff)$(item)Sceptre/$. Quand j'appuie sur $(thing)$(k:use)/$ avec un Sceptre dans l'une de mes mains une grille hexagonale de petits points apparait devant mes yeux. Je peux ensuite cliquer et glisser de point en point pour tracer et relâcher pour terminer de dessiner mes Runes. $(br2) Une fois la Rune relâchée, elle est exécutée (voir chapitre suivant).", "2": "Appuyer sur $(thing)$(k:escape)/$ enregistre et ferme la Grille ; lorsque j'utilise mon Sceptre à nouveau, toutes mes Runes et tous mes Iotas y seront toujours. $(br2) Si je souhaite reprendre mon Sortilège de zéro, je peux réinitialiser ma Grille en m'accroupissant lors de son ouverture.", }, "patterns&actions": { - "1": "Les $(thing)Runes/$ sont des chemins tracés dans la Grille de $(#b38ef3)Média/$. Je pense que la géométrie à six côtés caractéristique de mon art doit être ce qui lui a donné son nom : l'Ésométrie... ou l'Isotérie... ? Laisse tomber, appelons ça juste Sorcellerie... Sobre, concis, approprié. $(br2)$Toujours est-il que ces Runes $(italic)produisent/$ des $(thing)Actions.", - "2": "La subtilité est similaire à celle qui distingue les $(italic)mots/$ de leur $(italic)signification/$. N'importe quel mélange aléatoire de lettres forme un mot, mais la plupart d'entre eux (comme \"xnopyt\") ne veulent rien dire. Pareillement, n'importe quel gribouillage tracé maladroitement dans le $(#b38ef3)Média/$ est $(italic)techniquement/$ une Rune, mais la plupart d'entre elles ne feront rien.", - "3": "Les Actions sont un peu comme des commandes pour les grand systèmes qui gouvernent l'univers (que j'ai vu de nombreux textes personifier en \"Mère Nature.\"). En général, elles font une des choses suivantes:$(li)Rassembler des informations sur le monde, comme la position d'une Entité.$(li)Manipuler l'information rassemblée, comme trouver la distance entre deux positions.$(li)Déclencher un effet magique sur le monde, comme invoquer la foudre ou une explosion.$(br)Ces Actions là à la fin sont appelées \"Sorts\", et sont souvent ce qui attirent les gens vers cette discipline.", - "4": "Un $(#b38ef3)Sortilège/$, donc, est une séquence de Runes valides présentées à Mère Nature. Mère Nature les interpète une par une et si Elle comprend mon intention, elle change le monde en suivant ma volonté. (Ou du moins ce qu'elle pense être ma volonté)", - "5": "Même si certaines Actions peuvent être exécutées facilement, d'autres demandent un sacrifice sous forme de Média cristallisé. Je pense que le concentré d'énergie psychique est présenté comme un argument à Mère Nature, pour la convaincre de faire ce que je lui demande. La majorité des Sorts requièrent ce paiement mais certaines Actions normales l'exigent aussi.$(br2)J'ai archivé leur coût, si applicable, sur leurs pages respectives.", + "1": "Les $(thing)Runes/$ sont des chemins tracés dans la Grille de $(media)Média/$. Je pense que la géométrie à six côtés caractéristique de mon art doit être ce qui lui a donné son nom : l'Ésométrie... ou l'Isotérie... ? Laisse tomber, appelons ça juste Sorcellerie... Sobre, concis, approprié. $(br2)$Toujours est-il que ces Runes $(italic)produisent/$ des $(thing)Actions.", + "2": "La subtilité est similaire à celle qui distingue les $(italic)mots/$ de leur $(italic)signification/$. N'importe quel mélange aléatoire de lettres forme un mot, mais la plupart d'entre eux (comme \"xnopyt\") ne veulent rien dire. Pareillement, n'importe quel gribouillage tracé maladroitement dans le $(media)Média/$ est $(italic)techniquement/$ une Rune, mais la plupart d'entre elles ne feront rien.", + "3": "Les Actions sont un peu comme des commandes pour les grand systèmes qui gouvernent l'univers (que j'ai vu de nombreux textes personnifier en \"Mère-Nature.\"). En général, elles font une des choses suivantes:$(li)Rassembler des informations sur le monde, comme la position d'une Entité.$(li)Manipuler l'information rassemblée, comme trouver la distance entre deux positions.$(li)Déclencher un effet magique sur le monde, comme invoquer la foudre ou une explosion.$(br)Ces Actions là à la fin sont appelées \"Sorts\", et sont souvent ce qui attirent les gens vers cette discipline.", + "4": "Un $(hex)Sortilège/$, donc, est une séquence de Runes valides présentées à Mère Nature. Mère-Nature les interprète une par une et si Elle comprend mon intention, elle change le monde en suivant ma volonté. (Ou du moins ce qu'elle pense être ma volonté)", + "5": "Même si certaines Actions peuvent être exécutées facilement, d'autres demandent un sacrifice sous forme de Média cristallisé. Je pense que le concentré d'énergie psychique est présenté comme un argument à Mère-Nature, pour la convaincre de faire ce que je lui demande. La majorité des Sorts requièrent ce paiement mais certaines Actions normales l'exigent aussi.$(br2)J'ai archivé leur coût, si applicable, sur leurs pages respectives.", }, overview: { - "1": "Je pense qu'il est toujours bon de démarrer du bon pied. Donc, j'ai compilé les Runes qui m'aideront à faire un $(#b38ef3)Sortilège/$ qui causera une modeste explosion à l'endroit où mon regard se pose. J'imagine qu'examiner le fonctionnement de ce $(#b38ef3)Sortilège/$ me sera un bon exercice.", + "1": "Je pense qu'il est toujours bon de démarrer du bon pied. Donc, j'ai compilé les Runes qui m'aideront à faire un $(hex)Sortilège/$ qui causera une modeste explosion à l'endroit où mon regard se pose. J'imagine qu'examiner le fonctionnement de ce $(hex)Sortilège/$ me sera un bon exercice.", }, }, vectors: { @@ -822,29 +822,29 @@ "4": "Si j'ai un Vecteur qui représente la position d'un bloc et que je souhaite cibler le bloc au-dessus de lui, je dois augmenter la composante Y de mon Vecteur de 1. Je peux faire cela en prenant un second Vecteur de valeur (0, 1, 0) et en l'ajoutant au premier. De la même façon, si je souhaite cibler quelque chose se trouvant à deux blocs vers l'est, je pourrais ajouter un second Vecteur de valeur (2, 0, 0). Ces deux nouveaux Vecteurs représentent un $(o)décalage/$ d'une position à une nouvelle position.", "5": "Il est à noter que même si les Vecteurs de position et ceux de décalage représentent des concepts différents, il n'y a pas de différence fondamentale entre eux - tous les Vecteurs sont simplement un ensemble de nombres. Dans les faits, je pourrais même considérer que tous mes Vecteurs sont d'un type ou d'un autre selon mes envies : une position n'est après tout qu'un décalage depuis l'origine du monde, et un décalage n'est qu'une position relative à un point de départ arbitraire.", "6": "Les Vecteurs possèdent deux caractéristiques importantes : La magnitude (ou longueur) et sa direction (ou orientation). En considérant un Vecteur comme un déplacement, la magnitude serait la distance parcourue et sa direction le sens du déplacement.", - "7": "Il y a plusieurs méthodes pour manipuler des Vecteurs. Comme décrit précédemment, je peux les additionner, ce qui additionne les composantes X, Y et Z respectives des deux Vecteurs. Il en va de même pour la soustraction - à noter que soustraire un Vecteur de position à un autre résultera exactement en le Vecteur de décalage nécessaire pour me déplacer de la première position à la seconde.$(br2)Multiplier et diviser deux Vecteurs n'est pas aussi simple. Je peux trouver plus d'informations à ce sujet $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)here/$ and $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)ici/$.", + "7": "Il y a plusieurs méthodes pour manipuler des Vecteurs. Comme décrit précédemment, je peux les additionner, ce qui additionne les composantes X, Y et Z respectives des deux Vecteurs. Il en va de même pour la soustraction - à noter que soustraire un Vecteur de position à un autre résultera exactement en le Vecteur de décalage nécessaire pour me déplacer de la première position à la seconde.$(br2)Multiplier et diviser deux Vecteurs n'est pas aussi simple. Je peux trouver plus d'informations à ce sujet $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)ici/$ et $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)là/$.", "8": "Je peux aussi multiplier ou diviser un Vecteur par un Nombre pour le $(o)redimensionner/$. Cela multipliera ou divisera les trois composants du Vecteur par ce nombre.$(br2)Tant que le Nombre est positif, cela modifiera la longueur du Vecteur sans affecter son orientation. Si le Nombre est négatif, la longueur sera affectée de la même manière, mais l'orientation sera totalement inversée.", "11": "Pour comprendre les concepts les plus avancés sur les Vecteurs, il serait sage d'effectuer des recherches plus poussées que ce que contient mon carnet. La vidéo ci-dessous peut me servir de référence.", "11.link_text": "3blue1brown", }, basics_pattern: { raycast: { - "2": "S'il ne trouve pas de cible, les Vecteurs se combineront en $(thing)Null/$ . $(br2)Une séquence familière de Runes, connue sous le nom de \"Formule du Rayon Cible\", est $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Purification de l'Alidade/$, $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$. Ensembles, ils renvoient la position du bloc que je regarde sous forme de Vecteur.", + "2": "S'il ne trouve pas de cible, les Vecteurs se combineront en $(thing)Null/$. $(br2)Une séquence familière de Runes, connue sous le nom de \"Formule du Rayon Cible\", est $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Purification de la Boussole/$, $(l:patterns/basics#hexcasting:get_caster)$(action)Reflet de l'Esprit/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)Purification de l'Alidade/$, $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$. Ensembles, ils renvoient la position du bloc que je regarde sous forme de Vecteur.", "1": "Combine deux Vecteurs (une position et une direction) en la réponse à la question : Si je me tiens à cette position et que je regarde dans cette direction, quel bloc serais-je en train d'observer ? Coûte une quantité négligeable de $(media)Média/$.", }, "raycast/axis": { "1": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place un Vecteur répondant à la question : Quel $(italic)côté/$ du bloc je regarde ? Coûte une quantité négligeable de $(media)Média/$.", "2": "Plus spécifiquement, cela retourne un $(italic)vecteur normal/$ de la face ciblée, ou un vecteur unitaire perpendiculaire à cette face.$(li)Si je regarde le sol, cela me retournera (0, 1, 0).$(li)Si je regarde à la face sud d'un bloc, cela me retournera (0, 0, 1).", }, - "raycast/entity": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place $(italic)l'entité/$ que je regarde. Coûte une quantité négligeable de $(media)Média/$.", + "raycast/entity": "Similaire à la $(l:patterns/basics#hexcasting:raycast)$(action)Distillation de l'Archer/$, mais renvoie à la place $(italic)l'Entité/$ que je regarde. Coûte une quantité négligeable de $(media)Média/$.", get_entity_look: "Transforme une entité dans la Stack en la direction qu'elle est en train de regarder, sous la forme d'un Vecteur unitaire.", - get_caster: "M'ajoute moi, l'ensorceleur, sur la Stack.", + get_caster: "M'ajoute moi, l'Ensorceleur, sur la Stack.", "entity_pos/eye": "Transforme une Entité sur la Stack en la position de ses yeux. Je devrais l'utiliser sur moi-même.", "entity_pos/foot": "Transforme une Entité sur la Stack en la position de ses pieds. Je devrais l'utiliser sur les autres Entités.", print: "Me révèle l'Iota au sommet de la Stack.", get_entity_height: "Transforme un Entité dans la Stack en sa taille.", get_entity_velocity: "Transforme une Entité dans la Stack en la direction dans laquelle elle se déplace, avec la vitesse de ce déplacement comme magnitude..", - get_media: "Pousse la quantité de $(#b38ef3)Média/$ disponible pour le Sortilège actuel, en unités de $(l:items/amethyst)$(item)poussière d'améthyste/$.", + get_media: "Pousse la quantité de $(media)Média/$ disponible pour le Sortilège actuel, en unités de $(l:items/amethyst)$(item)Poussière d'améthyste/$.", }, interop: { gravity: { @@ -853,16 +853,16 @@ "1": "J'ai découvert des actions qui permettent de définir ou de récupérer la gravité affectant une entité. Je les trouve vraiment intéressantes, si ce n'est un peu nauséeuses.$(br2)Surprenamment, alors que les sorts de $(l:patterns/spells/flight)$(action)Vol/$ sont limités en portée ou en durée, et malgré les similarités avec la manipulation gravitationnelle, ceux-ci ne sont pas limités de la même façon. Ca me laisse perplexe de pourquoi... Peut-être que la développeuse du mod voulait que les joueurs s'amusent, pour une fois.", }, pehkui: { - set: "Définit la taille de l'entité, en proportion de sa taille normale. Coûte environ un $(item)Éclat d'Améthyste/$.", + set: "Définit la taille de l'entité, en proportion de sa taille normale. Coûte environ un $(item)Éclat d'améthyste/$.", get: "Récupère la taille d'une entité, en proportion de sa taille normale. Pour la majorité des entités, ce sera 1 (taille normale).", "1": "J'ai découvert des méthodes pour changer la taille des entités, mais aussi pour savoir à quel point elles sont plus grandes ou petites que la normale.", }, "3": "Enfin, si je me prends d'intérêt pour l'Histoire et les contes de ce monde, je ne pense pas qu'une note compilée en examinant ces interactions devrait être considérée comme plus que de légères broutilles.", - "2": "Je devrais gardedr en tête, néanmoins, que Mère Nature a fait moins attention en créant cette partie de l'art ; il faut s'attendre à d'étranges comportements et des bugs. Je suis sûr que la développeuse du mod fera de son mieux pour les corriger mais je dois bien garder en tête qu'ils sont un passe-temps frivole à ses yeux.$(br2)Je vais aussi sûrement trouver des problèmes d'équilibrages dans les coûts et effets des pouvoirs cross-mods. Dans ce cas, j'imagine que c'est à moi de faire preuve de responsabilité et de ne pas les exploiter.", + "2": "Je devrais garder en tête, néanmoins, que Mère-Nature a fait moins attention en créant cette partie de l'art ; il faut s'attendre à d'étranges comportements et des bugs. Je suis sûr que la développeuse du mod fera de son mieux pour les corriger mais je dois bien garder en tête qu'ils sont un passe-temps frivole à ses yeux.$(br2)Je vais aussi sûrement trouver des problèmes d'équilibrages dans les coûts et effets des pouvoirs cross-mods. Dans ce cas, j'imagine que c'est à moi de faire preuve de responsabilité et de ne pas les exploiter.", "1": "L'art de la Sorcellerie est versatile. Si je trouve que le monde a été $(italic)modifié/$ par certains pouvoirs il est alors possible d'utiliser la Sorcellerie en harmonie avec ces modifications.", }, abacus: { - "1": "Malgré l'existence de $(l:patterns/numbers)$(action)runes pour dessiner des nombres/$, je les trouve, disons ... pénibles, pour ne pas dire davantage . $(br2)Bienheureusement, les antiques maîtres de cet art ont inventé un appareil particulièrement ingénieux qu'ils appelaient un $(l:items/abacus)$(item)Abaque/$ qui fournit des nombres à ma sorcellerie . Je le règle simplement au nombre que je désire, puis je lis sa valeur en lançant $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, exactement comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$ ou un $(l:items/focus)$(item)Focus/$ .", + "1": "Malgré l'existence de $(l:patterns/numbers)$(action)runes pour dessiner des nombres/$, je les trouve, disons... pénibles, pour ne pas dire davantage. $(br2)Bienheureusement, les antiques maîtres de cet art ont inventé un appareil particulièrement ingénieux qu'ils appelaient un $(l:items/abacus)$(item)Abaque/$ qui fournit des nombres à ma sorcellerie. Je le règle simplement au nombre que je désire, puis je lis sa valeur en lançant $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, exactement comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$ ou un $(l:items/focus)$(item)Focus/$.", "crafting.desc": "$(italic)Les mathématiques ? C'est pour les crânes d'oeuf !/$", "2": "Pour en utiliser un, il suffit que je le tienne, que je m'accroupisse et que je défile avec ma souris. S'il est dans ma main principale, le nombre sera incrémenté (ou décrémenté) de 1, ou 10 si je suis aussi en train d'appuyer sur $(k:sprint). Dans mon autre main, à l'inverse, le nombre sera changé de 0.1, ou 0.001 si j'appuie sur $(k:sprint).$(br2)Je peux aussi secouer l'Abaque pour le remettre à zéro en faisant un clic droit en étant accroupi.", }, @@ -870,28 +870,28 @@ "read/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet du Scribe/$, mais l'iota est lu depuis une entité plutôt que depuis l'objet dans mon autre main .", "readable/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet de l'Auditeur/$, mais vérifie la lisibilité d'une entité plutôt que celle de l'objet dans mon autre main .", "writable/entity": "Un peu comme $(l:patterns/readwrite#hexcasting:read)$(action)Reflet de l'Évaluateur/$, mais vérifie l'écrivabilité d'une entité plutôt que celle de l'objet dans mon autre main .", - "write/entity": "Similaire au $(l:patterns/readwrite#hexcasting:read)$(action)Gambit du Scribe/$, mais l'iota est écrit dans une entité au lieu de l'objet dans mon autre main.$(br2)Détail intéressant à noter, il semblerait que je ne puisse pas écrire mon Vrai Nom en utilisant ce sort. J'ai l'intuition que cela aurait pu être dangereux si c'était possible.", - local: "Les objets ne sont pas les seuls endroits où je peux stocker des informations. Je peux également stocker des informations dans le $(#b38ef3)Média/$ du $(#b38ef3)Sortilège/$ lui-même, comme avec la stack, mais séparément. Les textes en parlent sous le nom d'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$. Il ne contient qu'un seul iota, comme le ferait un $(l:items/focus)$(item)Focus/$, et comme lui commence avec la valeur $(thing)Null/$. Il est préservé entre les iterations du $(l:patterns/meta#hexcasting:for_each)$(action)Gambit de Thoth/$, mais ne dure que le temps du $(#b38ef3)Sortilège/$ dont il fait partie. Lorsque je finis de concevoir mon $(#b38ef3)Sortilège/$, la valeur sera perdue.", + "write/entity": "Similaire au $(l:patterns/readwrite#hexcasting:read)$(action)Gambit du Scribe/$, mais l'iota est écrit dans une entité.$(br2)Détail intéressant à noter, il semblerait que je ne puisse pas écrire mon Vrai Nom en utilisant ce sort. J'ai l'intuition que cela aurait pu être dangereux si c'était possible.", + local: "Les objets ne sont pas les seuls endroits où je peux stocker des informations. Je peux également stocker des informations dans le $(media)Média/$ du $(hex)Sortilège/$ lui-même, comme avec la Stack, mais séparément. Les textes en parlent sous le nom d'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$. Il ne contient qu'un seul Iota, comme le ferait un $(l:items/focus)$(item)Focus/$, et comme lui commence avec la valeur $(thing)Null/$. Il est préservé entre les iterations du $(l:patterns/meta#hexcasting:for_each)$(action)Gambit de Thoth/$, mais ne dure que le temps du $(hex)Sortilège/$ dont il fait partie. Lorsque je finis de concevoir mon $(hex)Sortilège/$, la valeur sera perdue.", "read/local": "Copie l'iota présent dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, que je viens surement d'écrire avec le $(l:patterns/readwrite#hexcasting:write/local)$(action)Gambit d'Huginn/$.", "1": "Cette section traite du stockage des $(thing)Iotas/$ dans des médiums plus permanents. Quasiment n'importe quel iota peut être stocké dans un objet approprié, comme un $(l:items/focus)$(item)Focus/$ ou un $(l:items/spellbook)$(item)Livre de Sorts/$, puis relu plus tard. Certain objets, comme l'$(l:items/abacus)$(item)Abaque/$, ne peuvent qu'être lus.$(br2)Les iotas sont généralement lus et écrits depuis l'autre main, mais il est aussi possible de le faire avec un objet laissé sur le sol en tant qu'entité objet, ou quand il est dans un cadre.", "2": "Il existe peut-être d'autres entités avec lesquelles je peux interagir de cette façon. Par exemple, un $(l:items/scroll)$(item)Parchemin/$ suspendu à un mur permet de lire la rune inscrite dessus.$(br2)Cependant, il semblerait que je sois incapable de sauvegarder la référence d'un autre joueur, seulement la mienne. Je suppose que la référence à une entité est similaire à l'idée d'un Vrai Nom ; peut-être que Mère-Nature nous aide à garder nos Vrais Noms hors de mains mal intentionnées. Si je souhaite qu'un ami possède mon Vrai Nom, je peux créer un $(l:items/focus)$(item)Focus/$ et le lui offrir.", - read: "Copie l'iota stocké dans l'objet de mon autre main et l'ajoute à la stack.", - write: "Supprime l'iota de la stack et le sauvegarde dans l'objet que je tiens dans mon autre main.", + read: "Copie l'iota stocké dans l'objet de mon autre main et l'ajoute à la Stack.", + write: "Supprime l'iota de la Stack et le sauvegarde dans l'objet que je tiens dans mon autre main.", readable: "Si l'objet dans mon autre main contient un iota que je peux lire, renvoie Vrai. Sinon, renvoie Faux.", writable: "Si je peux sauvegarder un iota dans l'objet de mon autre main, renvoie Vrai. Sinon, renvoie Faux.", "local.title": "L'esprit de Corvus", - "write/local": "Supprime l'iota de la stack, et le sauvegarde dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, le stockant jusqu'à ce que j'arrête de concevoir le $(hex)Sortilège/$.", + "write/local": "Supprime l'iota de la Stack, et le sauvegarde dans l'$(l:patterns/readwrite#hexcasting:local)$(thing)Esprit de Corvus/$, le stockant jusqu'à ce que j'arrête de concevoir le $(hex)Sortilège/$.", }, start_to_see: { - "1": "Les textes ne mentaient pas. Mère Nature a pris son dû.", - "2": "Ç... Ça...$(p)...c'était l'une des $(italic)pires/$ choses que j'ai $(italic)jamais/$ vécu. J'ai offert mon plan à Mère Nature, elle m'a rendu un sourire imperturbable et une sensation de déchirure en retour-- une partie de moi se faisait balayer comme de la poussière d'améthyste dans le vent.$(p) J'ai déjà de la chance d'avoir $(italic)survécu/$ alors avoir la lucidité nécessaire pour écrire ces mots-- Je dois déclarer cette affaire classée et vérifier plus attentivement avant de lancer plus de $(#b38ef3)Sortilèges/$. Je ne referai jamais une telle erreur.", - "3": "... Mais. $(br2)Mais pour un bref instant, cette partie de moi... elle a $(italic)vu/$... $(l:greatwork/the_work)$(thing)quelque chose/$. Un endroit-- un modèle peut-être ? (De telles distinctions n'ont pas l'air de compter quand on parle de... ça.)$(p)Et une... une membrane-barrière-peau-frontière, qui me séparait d'un royaume de pure imagination-flux-lumière-énergie.Je me souviens-- J'ai vu- j'ai pensé- je me suis souvenu- j'ai ressenti-- la barrière se flouter sur les bords, juste un tout petit peu.$(p)Je voulais la $(italic)traverser./$", - "4": "Je ne devrais pas. Je $(italic)sais/$ que je ne devrais pas. C'est dangereux. Trop dangereux. La force requise... J'aurais besoin de m'amener aux portes de la Mort elle-même en un $(italic)seul dessin/$. $(br2)Mais je suis. Si. $(italic)Proche du But/$. $(p)$(italic)Ceci/$est la culmination de mon art. C'est l'$(#54398a)Illumination/$que je cherchais à atteindre. $(br2)Je veux aller plus loin. J'ai besoin de le revoir. Je $(italic)vais/$ le revoir. $(p)Ai-je vraiment peur de perdre mon âme de mortel si je gagne une gloire immortelle en retour ?", + "1": "Les textes ne mentaient pas. Mère-Nature a pris son dû.", + "2": "Ç... Ça...$(p)...c'était l'une des $(italic)pires/$ choses que j'ai $(italic)jamais/$ vécu. J'ai offert mon plan à Mère-Nature, elle m'a rendu un sourire imperturbable et une sensation de déchirure en retour-- une partie de moi se faisait balayer comme de la Poussière d'améthyste dans le vent.$(p) J'ai déjà de la chance d'avoir $(italic)survécu/$ alors avoir la lucidité nécessaire pour écrire ces mots-- Je dois déclarer cette affaire classée et vérifier plus attentivement avant de lancer plus de $(hex)Sortilèges/$. Je ne referai jamais une telle erreur.", + "3": "... Mais. $(br2)Mais pour un bref instant, cette partie de moi... elle a $(italic)vu/$... $(l:greatwork/the_work)$(thing)quelque chose/$. Un endroit-- un schéma peut-être ? (Considérations futiles pour... ça.)$(p)Et une... une membrane-barrière-peau-frontière, qui me séparait d'un royaume de pure imagination-flux-lumière-énergie.Je me souviens-- J'ai vu- j'ai pensé- je me suis souvenu- j'ai ressenti-- la barrière se flouter sur les bords, juste un tout petit peu.$(p)Je voulais la $(italic)traverser./$", + "4": "Je ne devrais pas. Je $(italic)sais/$ que je ne devrais pas. C'est dangereux. Trop dangereux. La force requise... J'aurais besoin de m'amener aux portes de la Mort elle-même en un $(italic)seul dessin/$. $(br2)Mais je suis. Si. $(italic)Proche du But/$. $(p)$(italic)Ceci/$est la culmination de mon art. C'est l'$(#54398a)Illumination/$que je cherchais à atteindre. $(br2)Je veux plus. J'ai besoin de le revoir. Je $(italic)vais/$ le revoir. $(p)Ai-je vraiment peur de perdre mon âme de mortel si je gagne une gloire immortelle en retour ?", }, whats_a_hex: { - "2": "En général, cela prend la forme d'une Liste d'Iotas de Rune, créée par les techniques décrites dans $(l:patterns/patterns_as_iotas)Runes d'Échappement/$. Avec mon $(#b38ef3)Sortilège/$ placé ainsi dans la Stack, je peux le lancer en utilisant des Runes de meta-évaluation comme le $(l:patterns/meta#hexcasting:eval)Gambit d'Hermes/$, ou infuser cela dans un $(l:items/hexcasting)Catalyseur de Sortilèges/$ pour être réutilisé facilement.$(br2)À noter que cette Liste n'est pas différente de n'importe quel Iota de Liste - Je peux la manipuler, la sauvegarder dans des $(l:items/focus)objets de stockage/$ peut-être de manière $(l:items/thought_knot)permanente/$, ou même l'incorporer dans un autre $(#b38ef3)Sortilège/$.", - "1": "De base, un $(#b38ef3)Sortilège/$ est exactement comme décrit dans $(l:casting/101)Initiation à la Sorcellerie/$ : une séquence d'actions, faites en général avec pour but d'effectuer un quelconque effet sur le monde avec un ou plusieurs sorts.$(br2) Cette idée d'un $(#b38ef3)Sortilège/$ fonctionne bien pour de la concevoir sur le tas, mais si je souhaite archiver mon travail pour la gloire (ou juste réutiliser ce que j'ai déjà fait) j'aurai besoin de quelque chose de plus concret.", - "3": "Notons aussi que cette Liste n'a pas besoin d'être uniquement composées d'Iotas de Rune. Insérer des Iotas d'autres types dans mes $(#b38ef3)Sortilèges/$ finissent rarement bien, mais $(l:patterns/patterns_as_iotas#iota_embedding)certaines techniques/$ me permettent de le faire en toute sécurité. De plus, certains $(l:patterns/meta#hexcasting:eval/cc)Iotas spéciaux/$ peuvent être évalués directement comme n'importe quelle Rune.$(br2) Ceci dit, $(o)n'importe quelle/$ Liste d'Iotas peut techniquement compter comme un sortilège - - le seul prérequis étant de parvenir à la lancer.", + "2": "En général, cela prend la forme d'une Liste d'Iotas de Rune, créée par les techniques décrites dans $(l:patterns/patterns_as_iotas)Runes d'Échappement/$. Avec mon $(hex)Sortilège/$ placé ainsi dans la Stack, je peux le lancer en utilisant des Runes de meta-évaluation comme le $(l:patterns/meta#hexcasting:eval)Gambit d'Hermes/$, ou infuser cela dans un $(l:items/hexcasting)Catalyseur de Sortilèges/$ pour être réutilisé facilement.$(br2)À noter que c'est un iota de liste classique - Je peux le manipuler, le sauvegarder dans des $(l:items/focus)objets de stockage/$ ou de manière $(l:items/thought_knot)permanente/$, ou même l'incorporer dans un autre $(hex)Sortilège/$.", + "1": "De base, un $(hex)Sortilège/$ est exactement comme décrit dans $(l:casting/101)Initiation à la Sorcellerie/$ : une séquence d'actions, faite en général avec pour but d'effectuer un quelconque effet sur le monde avec un ou plusieurs sorts.$(br2)Cette idée d'un $(hex)Sortilège/$ fonctionne bien pour de la conception sur le tas, mais si je souhaite archiver mon travail pour la gloire (ou juste réutiliser ce que j'ai déjà fait) j'aurai besoin de quelque chose de plus concret.", + "3": "Notons aussi que cette Liste n'a pas besoin d'être uniquement composées d'Iotas de Rune. Insérer des Iotas d'autres types dans mes $(hex)Sortilèges/$ finissent rarement bien, mais $(l:patterns/patterns_as_iotas#iota_embedding)certaines techniques/$ me permettent de le faire en toute sécurité. De plus, certains $(l:patterns/meta#hexcasting:eval/cc)Iotas spéciaux/$ peuvent être évalués directement comme n'importe quelle Rune.$(br2) Ceci dit, $(o)n'importe quelle/$ Liste d'Iotas peut techniquement compter comme un sortilège - - le seul prérequis étant de parvenir à la lancer.", }, focus: { "1": "Un $(item)Focus/$ est comme un $(l:items/thought_knot)$(item)Noeud-Pensée/$, dans le sens qu'un iota peut être écrit ou lu depuis. Cependant, l'avantage d'un Focus est qu'il est $(italic)réutilisable/$. Si je fais une erreur avec l'iota que j'écris dans un $(item)Focus/$, je peux simplement lancer le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ une nouvelle fois et écrire par-dessus l'iota présent à l'intérieur.", @@ -905,71 +905,71 @@ "crafting.desc": "Les $(italic)Mages/$ adorent les mots. La plupart d'entre eux lisent énormément et un signe évident d'un grand potentiel est l'incapacité à aller dormir sans avoir lu quelque chose avant.", }, scroll: { - "1": "Un $(l:items/scroll)$(item)Parchemin/$ est moyen pratique de partager une Rune avec d'autres. Je peux y copier une Rune avec le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$, après quoi cela s'affichera dans une infobulle.$(br2)Je peux aussi les placer sur des murs en décoration ou inspiration, comme je le ferais avec des tableaux, avec une taille allant de 1x1 à 3x3. Utiliser de la $(l:items/amethyst)$(item)Poussière d'Améthyste/$ sur un Parchemin avec une Rune affichera l'ordre des traits.", + "1": "Un $(l:items/scroll)$(item)Parchemin/$ est moyen pratique de partager une Rune avec d'autres. Je peux y copier une Rune avec le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$, après quoi cela s'affichera dans une infobulle.$(br2)Je peux aussi les placer sur des murs en décoration ou inspiration, comme je le ferais avec des tableaux, avec une taille allant de 1x1 à 3x3. Utiliser de la $(l:items/amethyst)$(item)Poussière d'améthyste/$ sur un Parchemin avec une Rune affichera l'ordre des traits.", "2": "De plus, je peux trouver des $(l:items/scroll)$(item)Parchemins Antiques/$ dans les donjons et les bastions de ce monde. Ils contiennent en eux le tracé des $(thing)Sorts Supérieurs/$, de grandes magies dont la rumeur dit qu'elles seraient trop puissantes pour les mains et l'esprit des mortels...$(br2)Si ces \"mortels\" ne pouvaient pas les utiliser, c'est peut-être qu'ils ne méritaient pas de les connaître.", "crafting.desc": "$(italic)Sur un parchemin immaculé, avec une plume finement taillée, j'écris dans le sang de mes étudiants pour percer Leurs secrets./$", }, stackmanip: { "pseudo-novice.title": "Gambit du Novice", - "pseudo-novice": "Retire le premier iota de la stack.$(br2)Il semblerait que ce soit un cas particulier du $(l:patterns/stackmanip#hexcasting:mask)$(action)Gambit du Comptable/$.", + "pseudo-novice": "Retire le premier iota de la Stack.$(br2)Il semblerait que ce soit un cas particulier du $(l:patterns/stackmanip#hexcasting:mask)$(action)Gambit du Comptable/$.", "fisherman/copy": "Similaire au $(l:patterns/stackmanip#hexcasting:fisherman)$(action)Gambit du Pêcheur/$, mais au lieu de déplacer l'iota, le copie.", mask: { "2": "En considérant que je dessine le Gambit du Comptable de gauche à droite, le nombre d'iotas requis pour cette action sera déterminé par la longueur horizontale de la Rune. La rune prend ces iotas depuis le haut de la Stack puis commence à les traiter en commençant par le plus bas d'entre eux. Une ligne plate conservera l'iota alors qu'un triangle incliné vers le bas le supprimera.$(br2)Si ma Stack contient $(italic)0, 1, 2/$ (de bas en haut), dessiner la première rune résultera en $(italic)1/$, la seconde résultera en $(italic)0/$ et la troisième résultera en $(italic)0, 2/$ (Le 0 du bas est laissé intact).", - "1": "Une famille infinie d'actions qui conservent ou suppriment les éléments en haut de la stack, en fonction d'une série de creux et de lignes.", + "1": "Une famille infinie d'actions qui conservent ou suppriment les éléments en haut de la Stack, en fonction d'une série de creux et de lignes.", }, - swap: "Échange les deux iotas au sommet de la stack.", - rotate: "Déplace le troisième iota au sommet de la stack. [0, 1, 2] devient alors [1, 2, 0].", - rotate_reverse: "Déplace le iota au sommet de la stack en troisième position. [0, 1, 2] devient alors [2, 0, 1].", - duplicate: "Duplique le iota au sommet de la stack.", - over: "Duplique le second iota et le place au sommet de la stack. [0, 1] devient alors [0, 1, 0].", + swap: "Échange les deux iotas au sommet de la Stack.", + rotate: "Déplace le troisième iota au sommet de la Stack. [0, 1, 2] devient alors [1, 2, 0].", + rotate_reverse: "Déplace le iota au sommet de la Stack en troisième position. [0, 1, 2] devient alors [2, 0, 1].", + duplicate: "Duplique le iota au sommet de la Stack.", + over: "Duplique le second iota et le place au sommet de la Stack. [0, 1] devient alors [0, 1, 0].", tuck: "Copie le premier iota puis le place en troisième position. [0, 1] devient alors [1, 0, 1].", - "2dup": "Copie les deux premiers iotas de la stack. [0, 1] devient alors [0, 1, 0, 1].", - stack_len: "Pousse la taille de la stack sous la forme d'un nombre au sommet de cette dernière. Par exemple, une stack [0, 1] deviendra alors [0, 1, 2].", - duplicate_n: "Supprime le nombre au sommet de la stack, puis crée autant de copie du iota suivant que ce nombre (Si le nombre en question est 2, il n'y aura que deux iotas dans la stack, et non trois).", - fisherman: "Déplace l'élément indexé par le nombre et le ramène au sommet de la stack. Si le nombre est négatif, la rune déplacera à la place l'iota au sommet de la stack vers le bas d'autant que le nombre indiqué.", + "2dup": "Copie les deux premiers iotas de la Stack. [0, 1] devient alors [0, 1, 0, 1].", + stack_len: "Pousse la taille de la Stack sous la forme d'un nombre au sommet de cette dernière. Par exemple, une Stack [0, 1] deviendra alors [0, 1, 2].", + duplicate_n: "Supprime le nombre au sommet de la Stack, puis crée autant de copie du iota suivant que ce nombre (Si le nombre en question est 2, il n'y aura que deux iotas dans la Stack, et non trois).", + fisherman: "Déplace l'élément indexé par le nombre et le ramène au sommet de la Stack. Si le nombre est négatif, la rune déplacera à la place l'iota au sommet de la Stack vers le bas d'autant que le nombre indiqué.", swizzle: { - "1": "Réarrange les éléments au sommet de la stack en fonction d'un code numérique qui est l'index de la permutation voulue.", + "1": "Réarrange les éléments au sommet de la Stack en fonction d'un code numérique qui est l'index de la permutation voulue.", "2": "Bien que je ne puisse pas prétendre savoir les mathématiques et les calculs derrière le code de la permutation, je suis parvenu à rédiger un graphique exhaustif de ces codes, énumérant toutes les permutations possibles jusqu'à six éléments.$(br2)Si je veux réaliser une étude plus profonde, le mot-clef est \"Lehmer Code\".", link: "Table des Codes", }, }, patterns_as_iotas: { runtime_escape: { - "2": "Certains trouveront peut-être utile de penser à ça comme \"échapper\" la Rune dans la stack, si jamais il se pourrait qu'ils soient familiers avec la science des ordinateurs.$(br2)L'utilisation la plus commune est de copier la Rune dans un $(l:items/scroll)$(item)Parchemin/$ ou une $(l:items/slate)$(item)Ardoise/$ en utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ et peut-être les utiliser comme décoration.", - "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.", + "2": "Certains trouveront peut-être utile de penser à ça comme \"échapper\" la Rune dans la Stack, si jamais il se pourrait qu'ils soient familiers avec la science des ordinateurs.$(br2)L'utilisation la plus commune est de copier la Rune dans un $(l:items/scroll)$(item)Parchemin/$ ou une $(l:items/slate)$(item)Ardoise/$ en utilisant le $(l:patterns/readwrite#hexcasting:write)$(action)Gambit du Scribe/$ et peut-être les utiliser comme décoration.", + "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 $(#b38ef3)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.", + "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.", 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.", + "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.", }, 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 $(#b38ef3)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.", - "eval/cc.1": "Exécute quelque chose d'évaluable de la stack exactement comme le ferait le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$, à l'exception qu'un unique iota \"Saut\" est poussé à la stack au préalable. ", - "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.", + "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.", + "eval/cc.1": "Exécute quelque chose d'évaluable de la Stack exactement comme le ferait le $(l:patterns/meta#hexcasting:eval)$(action)Gambit d'Hermes/$, à l'exception qu'un unique iota \"Saut\" est poussé à la Stack au préalable. ", + "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.", "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.", }, mishaps: { - "1": "Malheureusement, je ne suis pas (encore) un être parfait. Je fais des erreurs de temps à autre dans mes études et dans ma conception de $(#b38ef3)Sortilèges/$ ; par exemple, mal dessiner une Rune ou essayer de produire une Action avec les mauvais Iotas. Et Mère Nature n'apprécie pas beaucoup mes erreurs-- ce qui cause un $(italic)Méchef/$.", + "1": "Malheureusement, je ne suis pas (encore) un être parfait. Je fais des erreurs de temps à autre dans mes études et dans ma conception de $(hex)Sortilèges/$ ; par exemple, mal dessiner une Rune ou essayer de produire une Action avec les mauvais Iotas. Et Mère-Nature n'apprécie pas beaucoup mes erreurs-- ce qui cause un $(italic)méchef/$.", "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 $(#b38ef3)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é.", + "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é.", "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", @@ -990,63 +990,70 @@ incorrect_iota: "L'Action que j'ai exécuté s'attendait a recevoir un Iota d'un certain type comme argument, mais il a reçu quelque chose d'invalide. Si plusieurs Iotas sont invalides, le message d'erreur ne me parlera que de l'erreur au plus profond de la Stack. $(br2) Cause des étincelles gris foncé, et l'Iota invalide sera remplacé par un $(thing)Déchet/$.", entity_out_of_range: "L'action a tenté d'affecter une entité qui était hors de ma portée.$(br2)Provoque des étincelles roses et les objets dans ma main seront projetés vers l'entité incriminée.", entity_immune: "L'action a tenté d'affecter une entité qui ne pouvait pas être altérée.$(br2)Provoque des étincelles bleues et les objets dans mes mains seront projetés vers l'entité incriminée.", - math_error: "L'action a tenté d'offenser les lois des mathématiques, par exemple en divisant par zéro.$(br2)Provoque des étincelles rouges, pousse un $(thing)déchet/$ dans ma stack et mon esprit sera puni souillé, me retirant la moitié de la vigueur qu'il me restait. Il semblerait que Mère-Nature se sente personnellement insultée par de telles opérations et décide en retour de $(italic)me/$ diviser.", + math_error: "L'action a tenté d'offenser les lois des mathématiques, par exemple en divisant par zéro.$(br2)Provoque des étincelles rouges, pousse un $(thing)déchet/$ dans ma Stack et mon esprit sera puni souillé, me retirant la moitié de la vigueur qu'il me restait. Il semblerait que Mère-Nature se sente personnellement insultée par de telles opérations et décide en retour de $(italic)me/$ diviser.", incorrect_item: "L'action nécessite certains types d'objets, mais ceux que j'ai fourni ne sont pas adaptés.$(br2)Provoque des étincelles marrons. Si l'objet en question était dans ma main, je serai forcé de le lâcher. S'il était déjà au sol, en tant qu'entité, il sera projeté dans les airs.", incorrect_block: "L'action nécessite un block spécifique à la position ciblée, mais celui fourni n'était pas adapté.$(br2)Provoque des étincelles vertes et une explosion éphémère à l'endroit donné. L'explosion ne semble pas pouvoir détruire ou blesser, elle est juste surprenante.", - needs_parens: "J'ai tenté de dessiner une rune qui ne fonctionne que lorsque je suis en $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)introspection/$ mais je n'ai encore tracé aucune $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$.$(br2)Provoque des étincelles oranges et pousse la rune que j'ai tenté de dessiner dans la stack en tant qu'iota.", + needs_parens: "J'ai tenté de dessiner une rune qui ne fonctionne que lorsque je suis en $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)introspection/$ mais je n'ai encore tracé aucune $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)Introspection/$.$(br2)Provoque des étincelles oranges et pousse la rune que j'ai tenté de dessiner dans la Stack en tant qu'iota.", too_many_patterns: "J'ai tenté d'utiliser trop de runes en un seul $(hex)Sortilège/$. Souvent, cela se produit quand je crée une boucle infinie.$(br2)Provoque des étincelles bleu foncé et me fait suffoquer.", true_name: "J'ai tenté de $(l:patterns/readwrite#hexcasting:write)$(action)sauvegarder une référence/$ à un autre joueur dans un médium permanent.$(br2)Provoque des étincelles noires et me rend aveugle pendant environ une minute.", disabled: "J'ai tenté d'utiliser une action qui a été interdite par un administrateur du serveur.$(br2)Provoque des étincelles noires.", other: "Un bug dans le mod a changé un iota en un mauvais type ou a fait planter le sort. $(l:https://github.com/gamma-delta/HexMod/issues)S'il vous plaît, faites un rapport de bug !/$$(br2)Provoque des étincelles noires.", }, phials: { - "1": "Je trouve ça assez... agaçant, la façon dont Mère-Nature refuse de me donner la change pour mon travail. Si tout ce que j'ai en main est une $(l:items/amethyst)$(item)Améthyste Chargée/$, même la plus petite des $(l:patterns/basics#hexcasting:raycast)$(action)Distillations de l'Archer/$ consommera l'entièreté du cristal, gaspillant le $(media)Média/$.$(br2)Heureusement, il semblerait que j'ai trouvé un moyen d'en quelque sorte pallier à ce problème.", - "2": "J'ai trouvé d'antiques parchemins décrivant une $(item)fiole/$ infusée avec du $(media)média/$. Lorsque je conçois des $(hex)Sortilèges/$, mes sorts draineraient plutôt leur $(media)média/$ de la fiole. La forme liquide du $(media)média/$ me laisserait l'équivalent exact, ou pour le dire autrement : rien ne serait gaspillé. C'est un peu comme la batterie interne d'une $(l:items/hexcasting)$(item)Relique/$, ou similaire ; Je peux même utiliser la $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ de la même manière.", + "1": "Je trouve ça assez... agaçant, la façon dont Mère Nature refuse de me donner la change pour mon travail. Si tout ce que j'ai en main est une $(l:items/amethyst)$(item)Améthyste chargée/$, même la plus petite des $(l:patterns/basics#hexcasting:raycast)$(action)Distillations de l'Archer/$ consommera l'entièreté du cristal, gaspillant le $(media)Média/$.$(br2)Heureusement, il semblerait que j'ai trouvé un moyen d'en quelque sorte pallier ce problème.", + "2": "J'ai trouvé d'antiques parchemins décrivant une $(item)fiole/$ infusée avec du $(media)Média/$. Lorsque je conçois des $(hex)Sortilèges/$, mes sorts draineraient plutôt leur $(media)Média/$ de la fiole. La forme liquide du $(media)Média/$ me laisserait l'équivalent exact, ou pour le dire autrement : rien ne serait gaspillé. C'est un peu comme la batterie interne d'une $(l:items/hexcasting)$(item)Relique/$, ou similaire ; Je peux même utiliser la $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)Recharge/$ de la même manière.", desc: "$(italic)Les produits laitiers sont nos amis pour la vie./$", - "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.", + "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éé 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.", "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.", + 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: { "compare_item/": { strict: "Similaire à la $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Distillation Trieuse/$, mais pousse s'ils sont des objets identiques. Deux $(l:items/focus)$(item)Foci/$ ne seront considérés identiques que s'ils contiennent le même iota et ont $(l:patterns/spells/cyclevariant)$(thing)la même apparence/$.", "remarks.title": "Sur les Porte-Objets", + lenient: "Compare les objets représentés ou tenu par l'Entité donnée et pousse s'ils sont le même type d'objet. Deux $(l:items/focus)$(item)Foci/$ seront toujours considérés comme égaux.", + remarks: "La façon dont Mère-Nature interprète l'entité fournie à la $(l:patterns/types#hexcasting:compare_item/lenient)$(action)Distillation Trieuse/$ ou la $(l:patterns/types#hexcasting:compare_item/strict)$(action)Distillation Empileuse/$ dépend de son type : $(li)Les entités \"objet\" sont traitées comme les objets qu'elles représentent$(li)Les cadres sont considérés en fonction de l'objet qu'ils contiennent et produisent un méchef s'ils sont vides$(li)Les joueurs sont traités en fonction de l'objet qu'ils tiennent actuellement, priorisant leur main principale", }, "compare_block/": { lenient: "Récupère les blocs spécifiés par les vecteurs en anglais et pousse la comparaison entre leur type. Deux $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)escaliers en bois ensorcelé/$ seront toujours considérés comme identiques malgré leur forme ou s'ils contiennent de l'eau (waterlog).", strict: "Récupère les blocs spécifiés par les vecteurs en anglais et pousse la comparaison entre leur apparence. Deux $(l:items/edified#hexcasting:cut_edified_plank_variants)$(item)escaliers en bois ensorcelé/$ ne seront considérés identiques que s'ils ont exactement la même apparence.", - remarks: "Mère Nature semble décider arbitrairement quand les blocs semblent identiques l'un, l'autre. Les ardoises posées apparaissent identiquent si elles sont pointées dans la même direction et partagent leur état d'immersion dans l'eau, même si elle ne partagent pas leurs Runes. Pareillement, les coffres apparaissent identiques s'ils partagent leur apparence extérieure, même si leur contenu diffère.", + remarks: "Mère-Nature semble décider arbitrairement quand les blocs semblent identiques l'un, l'autre. Les ardoises posées apparaissent identiques si elles sont pointées dans la même direction et partagent leur état d'immersion dans l'eau, même si elle ne partagent pas leurs Runes. Pareillement, les coffres apparaissent identiques s'ils partagent leur apparence extérieure, même si leur contenu diffère.", }, compare_entity: "Compare deux entités données et pousse si elles sont du même type.", type_not_equals: "Compare les deux iotas fournis et pousse s'ils sont de types différents.", type_equals: "Compare les iotas fournis et pousse s'ils sont du même type.", }, hexcasting: { - "2": "Pour cela, je peux créer un des trois types d'objets magiques : $(l:items/hexcasting)$(item)Talismans/$, $(l:items/hexcasting)$(item)Reliques/$ ou $(l:items/hexcasting)$(item)Artéfacts/$. Tous peuvent contenir les runes d'un $(hex)sortilège/$ à l'intérieur, ainsi qu'une petite batterie contenant du $(media)média/$.$(br2)Il suffit d'en tenir un et d'appuyer sur $(thing)$(k:use)/$ pour activer les runes à l'intérieur, comme si son propriétaire venait de concevoir le sortilège avec son sceptre, tout en utilisant sa batterie interne.", - "3": "Chaque objet a ses propres particularités : $(br2)Les $(l:items/hexcasting)$(item)Talismans/$ sont fragiles, détruits après que leurs réserves de $(media)média/$ soient épuisées et ils ne $(italic)peuvent pas/$ être rechargés ;$(br2)Les $(l:items/hexcasting)$(item)Reliques/$ peuvent être utilisées aussi souvent que leur propriétaire le souhaite, tant qu'il y a suffisamment de $(media)média/$ restant, mais deviennent ensuite inutiles jusqu'à ce qu'elles soient rechargées ;", - "4": "Les $(l:items/hexcasting)$(item)Artéfacts/$ sont les plus puissants de tous -- après que leur $(media)média/$ soit entièrement vidé, ils peuvent utiliser l'$(l:items/amethyst)$(item)Améthyste/$ depuis l'inventaire de leur propriétaire comme paiement pour le $(hex)Sortilège/$, comme je le ferais en confectionnant un sort avec un $(l:items/staff)$(item)Sceptre/$. Évidemment, cela signifie aussi que le sort peut consommer leur esprit s'il n'y a pas assez d'$(l:items/amethyst)$(item)Améthyste/$.$(br2)Une fois que j'ai créé un catalyseur de sortilèges vierge avec un banal établi, je peux l'infuser d'un $(hex)sortilège/$ en utilisant (quoi d'autre) un sort approprié pour l'objet. $(l:patterns/spells/hexcasting)J'ai catalogué les runes ici./$", + "2": "Pour cela, je peux créer un des trois types d'objets magiques : $(l:items/hexcasting)$(item)Talismans/$, $(l:items/hexcasting)$(item)Reliques/$ ou $(l:items/hexcasting)$(item)Artéfacts/$. Tous peuvent contenir les Runes d'un $(hex)sortilège/$ à l'intérieur, ainsi qu'une petite batterie contenant du $(media)Média/$.$(br2)Il suffit d'en tenir un et d'appuyer sur $(thing)$(k:use)/$ pour activer les Runes à l'intérieur, comme si son propriétaire venait de concevoir le Sortilège avec son sceptre, tout en utilisant sa batterie interne.", + "3": "Chaque objet a ses propres particularités : $(br2)Les $(l:items/hexcasting)$(item)Talismans/$ sont fragiles, détruits après que leurs réserves de $(media)Média/$ soient épuisées et ils ne $(italic)peuvent pas/$ être rechargés ;$(br2)Les $(l:items/hexcasting)$(item)Reliques/$ peuvent être utilisées aussi souvent que leur propriétaire le souhaite, tant qu'il y a suffisamment de $(media)Média/$ restant, mais deviennent ensuite inutiles jusqu'à ce qu'elles soient rechargées ;", + "4": "Les $(l:items/hexcasting)$(item)Artéfacts/$ sont les plus puissants de tous -- après que leur $(media)Média/$ soit entièrement vidé, ils peuvent utiliser l'$(l:items/amethyst)$(item)améthyste/$ depuis l'inventaire de leur propriétaire comme paiement pour le $(hex)Sortilège/$, comme je le ferais en confectionnant un sort avec un $(l:items/staff)$(item)Sceptre/$. Évidemment, cela signifie aussi que le sort peut consommer leur esprit s'il n'y a pas assez d'$(l:items/amethyst)$(item)améthyste/$.$(br2)Une fois que j'ai créé un Catalyseur de Sortilèges vierge avec un banal établi, je peux l'infuser d'un $(hex)Sortilège/$ en utilisant un Sort approprié pour l'objet. $(l:patterns/spells/hexcasting)J'ai catalogué les Runes ici./$", "1": "Bien que la flexibilité de concevoir des $(hex)Sortilèges/$ \"sur le pouce\" avec mon $(l:items/staff)$(item)Sceptre/$ est très utile, il devient fastidieux de devoir l'agiter dans tous les sens de façon répétée pour accomplir des tâches basiques. Si seulement je pouvais sauvegarder mes $(hex)Sortilèges/$ du quotidien pour les réutiliser plus tard, cela me simplifierait la vie -- et me permettrait de partager mes $(hex)Sortilèges/$ à des amis aussi.", - "5": "Chaque sort d'infusion nécessite une entité et une $(l:casting/whats_a_hex)liste d'iotas/$ à exécuter sur la Stack. L'entité doit être un objet capable de $(media)contenir du média/$ (ex. une $(l:items/amethyst)$(item)Améthyste/$ lâchée sur le sol) ; L'entité est consommée et forme la batterie.$(br2)Avantageusement, il semblerait que le $(media)média/$ de la batterie ne soit pas consommé par morceau, comme lorsque j'utilise un $(l:items/staff)$(item)Sceptre/$ -- à la place, le $(media)média/$ est \"fondu\" en une sorte de bassin interne. Ainsi, si je stocke un $(hex)Sortilège/$ qui ne coute qu'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, une batterie créée avec un $(l:items/amethyst)$(item)Cristal Chargé/$ me permettra d'utiliser le $(hex)Sortilège/$ 10 fois.", - "crafting.desc": "$(italic)Il y a un dicton de par chez moi : \"La magie n'est pas\". Ce n'est pas juste \"ça fonctionne\", ça ne répond pas à nos pensées, on ne peut pas lancer de boules de feu ou créer un délicieux repas depuis le néant ou transformer une bande d'agresseurs en grenouilles et escargots./$", + "5": "Chaque Sort d'infusion nécessite une Entité et une $(l:casting/whats_a_hex)Liste d'Iotas/$ à exécuter sur la Stack. L'entité doit être un objet capable de $(media)contenir du Média/$ (ex. une $(l:items/amethyst)$(item)améthyste/$ lâchée sur le sol) ; L'Entité est consommée et forme la batterie.$(br2)Avantageusement, il semblerait que le $(media)Média/$ de la batterie ne soit pas consommé par morceau, comme lorsque j'utilise un $(l:items/staff)$(item)Sceptre/$ -- à la place, le $(media)Média/$ est \"fondu\" en une sorte de bassin interne. Ainsi, si je stocke un $(hex)Sortilège/$ qui ne coute qu'une $(l:items/amethyst)$(item)Poussière d'améthyste/$, une batterie créée avec une $(l:items/amethyst)$(item)Améthyste chargée/$ me permettra d'utiliser le $(hex)Sortilège/$ 10 fois.", + "crafting.desc": "$(italic)Comme on dit : “La magie n’a rien de magique.” Elle ne fonctionne pas toute seule, elle ne connaît pas nos intentions, on ne peut pas jeter des boules de feu ou invoquer un dîner parfait ou transformer des voleurs en grenouilles ou en escargots juste comme ça./$", }, ancient_cyphers: { - "1": "Lors de mes aventures, j'ai fini par découvrir ce qui semble être des $(l:items/hexcasting)$(item)Talismans/$ créés par les anciens Ensorceleurs des temps passés. Ces $(item)Talismans anciens/$ fonctionnent de la même façon que ceux que je peux créé : Ils ne peuvent pas être rechargés et se briseront une fois leurs réserves de $(media)média/$ arrivées à terme. Cependant, contrairement à mes propres $(l:items/hexcasting)$(item)Talismans/$, leur structure détériorée me permet d'apercevoir le $(hex)Sortilège/$ stocké en eux.", + "1": "Lors de mes aventures, j'ai fini par découvrir ce qui semble être des $(l:items/hexcasting)$(item)Talismans/$ créés par les anciens Ensorceleurs des temps passés. Ces $(item)Talismans anciens/$ fonctionnent de la même façon que ceux que je peux créé : Ils ne peuvent pas être rechargés et se briseront une fois leurs réserves de $(media)Média/$ arrivées à terme. Cependant, contrairement à mes propres $(l:items/hexcasting)$(item)Talismans/$, leur structure détériorée me permet d'apercevoir le $(hex)Sortilège/$ stocké en eux.", "2": "Ils peuvent être assez utiles pour apprendre de nouvelles techniques - qui pourrait mieux m'enseigner que les anciens maîtres de cet art ? $(br2)Alternativement, je peux supprimer le contenu de l'un d'entre eux et y stocker mes propres $(hex)Sortilèges/$ à l'intérieur, créant un catalyseur de sortilèges qui affiche clairement sa fonction.", - "3": "Le (l:items/pigments)$(item)Pigment/$ infusé dans ces reliques est un mélange unique entre le violet et l'orange, correspondant à leur apparence cuivre-et-améthyste. Je peux le répliquer en utilisant la recette ci-dessus.", + "3": "Le $(l:items/pigments)$(item)Pigment/$ infusé dans ces reliques est un mélange unique entre le violet et l'orange, correspondant à leur apparence cuivre-et-améthyste. Je peux le répliquer en utilisant la recette ci-dessus.", }, hexcasting_spell: { - "craft/cypher": "Coûte environ une $(l:items/amethyst)$(item)améthyste chargée/$.", - "craft/trinket": "Coûte environ cinq $(l:items/amethyst)$(item)améthystes chargées/$.", - "erase.2": "Le sort videra aussi tout le $(media)média/$ stocké dans l'objet, le renvoyant à Mère-Nature et me rendant l'objet dans un état totalement neuf. De cette manière, je peux réutiliser les $(l:items/hexcasting)$(item)Reliques/$ dans lesquelles j'ai placé un sort erroné, par exemple.$(br2)Cela fonctionne aussi pour nettoyer un $(l:items/focus)$(item)Focus/$ ou une page de $(l:items/spellbook)$(item)Livre de Sorts/$, brisant leur sceau par la même occasion.", - "craft/artifact": "Coûte environ dix (l:items/amethyst)$(item)améthystes chargées/$.", - "recharge.1": "Recharge un contenant de $(media)média/$ de mon autre main. Coûte environ un $(l:items/amethyst)$(item)Éclat d'Améthyste/$ par objet.", - "erase.1": "Vide tout content de $(hex)Sortilège/$ ou d'iota se trouvant dans mon autre main. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ par objet.", + "craft/cypher": "Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", + "craft/trinket": "Coûte environ cinq $(l:items/amethyst)$(item)Améthystes chargées/$.", + "erase.2": "Le Sort videra aussi tout le $(media)Média/$ stocké dans l'objet, le renvoyant à Mère-Nature et me rendant l'objet dans un état totalement neuf. De cette manière, je peux réutiliser les $(l:items/hexcasting)$(item)Reliques/$ dans lesquelles j'ai placé un Sort erroné, par exemple.$(br2)Cela fonctionne aussi pour nettoyer un $(l:items/focus)$(item)Focus/$ ou une page de $(l:items/spellbook)$(item)Livre de Sorts/$, brisant leur sceau par la même occasion.", + "craft/artifact": "Coûte environ dix (l:items/amethyst)$(item)Améthystes chargées/$.", + "recharge.1": "Recharge un contenant de $(media)Média/$ de mon autre main. Coûte environ un $(l:items/amethyst)$(item)Éclat d'améthyste/$ par objet.", + "erase.1": "Vide tout content de $(hex)Sortilège/$ ou d'Iota se trouvant dans mon autre main. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$ par objet.", basics: "Chacun de ces trois Sorts crée un $(l:items/hexcasting)$(thing)Catalyseur de Sortilèges./$$(br)Ils m'exigent de tenir le Catalyseur vide dans ma main gauche et d'avoir deux choses : la conception de la Liste d'Iotas (souvent des Runes) à lancer, et une Entité qui représente un stack d'$(l:items/amethyst)$(item)améthyste/$ pour la batterie du Catalyseur.$(br2)Voir $(l:items/hexcasting)cette entrée/$ pour plus d'informations.", + "recharge.2": "Ce Sort s'utilise de la même façon que ceux de création ; l'Entité représente un stack lâché au sol d'$(l:items/amethyst)$(item)améthystes/$ et recharge la batterie de $(media)Média/$ de l'objet dans mon autre main.$(br2)Ce sort $(italic)ne peut pas/$ recharger un objet au-delà de sa capacité d'origine.", }, cycle_variant: "Certains objets que je crée semblent étrangement réceptifs à l'influence du $(media)média/$. En tenant en main un $(l:items/hexcasting)$(item)Talisman/$, une $(l:items/hexcasting)$(item)Relique/$, un $(l:items/hexcasting)$(item)Artéfact/$, $(l:items/focus)$(item)Focus/$ ou un $(l:items/spellbook)$(item)Livre de Sorts/$ dans mon autre main, je peux utiliser ce sort pour changer leur apparence. Coûte une quantité négligeable de $(media)média/$.", lore: { @@ -1069,7 +1076,7 @@ "5": "Je n'arrive plus écrire, mes mains tremblent tant, par pitié, quelqu'un, sauvez nous.", "4": "Cette lettre m'a demandé tant de courage a écrire, et je n'ai pas le courage de le partager avec les gens moi-même, mais si personne ici ne peut avoir ces informations je prie pour que tu puisse le faire... c'est éspérer en vain de m'attendre à ce que ça se propage dans un trou aussi paumé que Brackenfalls, mais s'il te plaît, je t'en supplie, fais de ton mieux. Souviens-toi d'eux Papa... Amanita Libera, Jasmine Ward, Theodore Cha... s'il te plaît, souviens-toi d'eux et oublie ma lâcheté, je t'en laisse la responsabilité.", "1": "$(italic)Titre complet : Lettre de Cardamom Steles adressée à son père, #4/$$(br2)Amanita a disparu.$(br) Je ne sais pas où elle est passée, Papa. La dernière fois que je l'ai vu c'était pour le souper et elle venait juste de parler à quelqu'un au sujet des disparitions, puis--", - "2": "puis-- puis elle avait disparu elle aussi. Et plus personne ne parle d'elle, et j'ai tellement tellement peur, Papa, est-ce qu'ils sont tous au courant? Tout le monde doit avoir un camarade qui s'est juste $(italic)évaporé/$ dans les airs, qui n'existe plus.$(br2)$(italic)Où sont-ils tous passés/$ ?", + "2": "puis-- puis elle avait disparu elle aussi. Et plus personne ne parle d'elle, et j'ai tellement tellement peur, Papa, est-ce qu'ils sont tous au courant ? Tout le monde doit avoir un camarade qui s'est juste $(italic)évaporé/$ dans les airs, qui n'existe plus.$(br2)$(italic)Où sont-ils tous passés/$ ?", "3": "Ils continuent de fermer l'accès à plein d'endroits aussi-- Nous ne sommes pas allés en expédition avec la Division des Géologues depuis des semaines, tous les appareils de collecte de Média dans le dôme principal ont aussi disparu, la Division des Apothicaires ont fermé depuis des mois... c'est comme si des termites étaient en train de ronger la Grande depuis l'intérieur, ne laissant derrière qu'une coquille vide.$(br2)Je crois qu'ils ont commencé à lire notre courrier aussi...", }, experiment2: { @@ -1134,38 +1141,39 @@ }, creative_items: { "1": "J'ai inventé quelques objets particuliers qui ne peuvent être obtenu qu'en étant particulièrement $(italic)créatif/$.", - creative_unlocker: "Le $(#74b3f2)Cube de Média/$ est une source presque illimitée de pouvoir, et sert de source infinie de $(#b38ef3)Média/$ pour n'importe quel $(#b38ef3)Sortilège/$ que je souhaite concevoir. Il a aussi l'air bien appétissant. Peut-être que le manger pourrait révéler des informations sur ce monde, on entrerait alors dans une zone de divulgâche...", - "2": "En plus, il s'avère qu'en renommant un $(#74b3f2)Cube de Média/$ avec une enclume, je peux l'utiliser pour tester et mieux comprendre mes $(#b38ef3)Sortilèges/$. Si j'ai réussi à obtenir une influence Créative sur ce monde, je veux peut-être la désactiver avant d'essayer...", + creative_unlocker: "Le $(#74b3f2)Cube de Média/$ est une source presque illimitée de pouvoir, et sert de source infinie de $(media)Média/$ pour n'importe quel $(hex)Sortilège/$ que je souhaite concevoir. Il a aussi l'air bien appétissant. Peut-être que le manger pourrait révéler des informations sur ce monde, on entrerait alors dans une zone de divulgâche...", + "2": "En plus, il s'avère qu'en renommant un $(#74b3f2)Cube de Média/$ avec une enclume, je peux l'utiliser pour tester et mieux comprendre mes $(hex)Sortilèges/$. Si j'ai réussi à obtenir une influence Créative sur ce monde, je veux peut-être la désactiver avant d'essayer...", debug_media: { title: "debug media", desc: "En renommant le $(#74b3f2)Cube de Média/$ en \"debug media\", des retours sur la quantité de Média consommée me seront donnés dans la fenêtre du chat.", }, }, media: { - "1": "Le $(#b38ef3)Média/$ est une forme d'énergie mentale externe à l'esprit. Tous les êtres vivant génèrent des quantités infimes de $(#b38ef3)Média/$ en pensant à n'importe quoi ; une fois la pensée terminée, le Média est relâché dans la nature.$(br2)L'art de la $(#b38ef3)Sorcellerie/$ est l'art de manipuler le $(#b38ef3)Média pour faire ce qu'on lui demande.", - "2": "Le $(#b38ef3)Média/$ peut exercer son influence sur d'autres formes de Média-- sa force et sa méthode d'influence peuvent être manipulées en dessinant des Runes avec du $(#b38ef3)Média/$. $(p) Les maîtres de la discipline utilisaient un morceau de $(#b38ef3)Média/$ concentré au bout d'un bâton : en l'agitant dans les airs avec précision, ils étaient capables de manipuler suffisamment de $(#b38ef3)Média/$ avec assez de précision pour influencer le monde lui-même, sous la forme d'un $(#b38ef3)Sortilège/$.", - "3": "Malheureusement, même un être entièrement doté de conscience (comme moi, je présume) ne peut générer que des quantités de $(#b38ef3)Média/$ ridicules. Il serait bien peu pratique d'utiliser ma propre psyché pour concevoir des Sortilèges. $(br2)Mais les légendes racontent qu'il y aurait des dépots naturels sous terre où le $(#b38ef3)Média/$ s'accumule lentement sous forme cristalline.$(p)Si seulement je pouvais en trouver un...", + "1": "Le $(media)Média/$ est une forme d'énergie mentale externe à l'esprit. Tous les êtres vivant génèrent des quantités infimes de $(media)Média/$ en pensant à n'importe quoi ; une fois la pensée terminée, le Média est relâché dans la nature.$(br2)L'art de la $(hex)Sorcellerie/$ est l'art de manipuler le $(media)Média/$ pour faire ce qu'on lui demande.", + "2": "Le $(media)Média/$ peut exercer son influence sur d'autres formes de Média-- sa force et sa méthode d'influence peuvent être manipulées en dessinant des Runes avec du $(media)Média/$. $(p) Les maîtres de la discipline utilisaient un morceau de $(media)Média/$ concentré au bout d'un bâton : en l'agitant dans les airs avec précision, ils étaient capables de manipuler suffisamment de $(media)Média/$ avec assez de précision pour influencer le monde lui-même, sous la forme d'un $(hex)Sortilège/$.", + "3": "Malheureusement, même un être entièrement doté de conscience (comme moi, je présume) ne peut générer que des quantités de $(media)Média/$ ridicules. Il serait bien peu pratique d'utiliser ma propre psyché pour concevoir des Sortilèges. $(br2)Mais les légendes racontent qu'il y aurait des dépots naturels sous terre où le $(media)Média/$ s'accumule lentement sous forme cristalline.$(p)Si seulement je pouvais en trouver un...", }, flights: { "range.1": "Un vol limité dans sa portée.", - "1": "Même s'il semble que voler sans limites pour de vrai m'est impossible, j'ai quand même trouvé quelques méthodes pour maintenir quelqu'un dans les airs, mais elles ont leurs inconvénients respectifs.$(br2)Elles produisent toutes une aura scintillante grâce au surplus de $(#b38ef3)Média/$ ; lorsque le Sort se rapproche de ses limites cette aura devient de plus en plus rouge et noire.", + "1": "Même s'il semble que voler sans limites pour de vrai m'est impossible, j'ai quand même trouvé quelques méthodes pour maintenir quelqu'un dans les airs, mais elles ont leurs inconvénients respectifs.$(br2)Elles produisent toutes une aura scintillante grâce au surplus de $(media)Média/$ ; lorsque le Sort se rapproche de ses limites cette aura devient de plus en plus rouge et noire.", "time.1": "Un vol limité dans sa durée.", "2": "D'autres formes de vol existent, bien sûr. Par example, une combinaison des Sorts $(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulsion/$ et $(l:patterns/spells/nadirs#hexcasting:potion/levitation)$(action)Nadir du Soleil Bleu/$ était utilisée dans l'antiquité comme forme de vol primitive.$(br2)J'ai aussi entendu parler d'une fine membrane que l'on porte sur le dos pour se donner la capacité de planer. D'après mes recherches, le Grand Sort $(l:patterns/great_spells/altiora)$(action)Altiora/$ pourrait être utilisé pour l'imiter.", - "range.2": "Le deuxième argument est un rayon en mètres, qui forme un périmètre horizontal en forme de cercle dans lequel le sort est stable. Sortir de ce périmètre arrêtera le Sort, et me laissera tomber du ciel mais tant que je reste à l'intérieur le Sort dure indéfiniment. Une étincelle de $(#b38ef3)Média/$ marque le point d'origine du périmètre de sécurité. $(br2) Coût d'approximativement 2 $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + "range.2": "Le deuxième argument est un rayon en mètres, qui forme un périmètre horizontal en forme de cercle dans lequel le sort est stable. Sortir de ce périmètre arrêtera le Sort, et me laissera tomber du ciel mais tant que je reste à l'intérieur le Sort dure indéfiniment. Une étincelle de $(media)Média/$ marque le point d'origine du périmètre de sécurité. $(br2) Coût d'approximativement 2 $(l:items/amethyst)$(item)Poussière d'améthyste/$.", "can_fly.1": "Renvoie si le joueur donné est sous l'effet du vol de l'$(l:patterns/spells/flight#hexcasting:flight/range)Anachorète/$ ou de celui du $(l:patterns/spells/flight#hexcasting:flight/time)Voyageur/$.", - "time.2": "Le second argument est une durée en secondes pendant laquelle le sort reste stable. Une fois le temps écoulé, le sort prend fin et je suis lâché dans le vide.$(br2)Coûte environ deux $(l:items/amethyst)$(item)Poussières d'Améthyste/$ par seconde de vol ; Je suppose que c'est surtout adapté pour le voyage.", + "time.2": "Le second argument est une durée en secondes pendant laquelle le sort reste stable. Une fois le temps écoulé, le sort prend fin et je suis lâché dans le vide.$(br2)Coûte environ deux $(l:items/amethyst)$(item)Poussières d'améthyste/$ par seconde de vol ; Je suppose que c'est surtout adapté pour le voyage.", + "can_fly.2": "Ce n'est pas en mesure de détecter si le joueur peut voler par d'autres moyens.$(br2)Je ne trouve pas très clair en quoi cela peut m'être utile. Mais je suppose que son utilité dépend du point de vue de son utilisateur.", }, geodes: { - "1": "Aha ! En minant profondément sous la terre, j'ai découvert une énorme géode qui rayonnait d'énergie-- une énergie qui faisait pression sur mon crâne et mes pensées. Et maintenant, je tiens cette pression dans ma main sous forme solide. Ca prouve mon hypothèse. Cette géode $(italic)doit/$ être le dépot de $(#b38ef3)Média/$ dont parlaient les légendes.$(br2)Ces$(l:items/amethyst)$(item)cristaux d'améthyste/$ doivent être de $(l:items/amethyst)$(thing) bien astucieuses formes de $(#b38ef3)Média/$ solidifié.", - "2": "Il semblerait qu'en plus des $(l:items/amethyst)$(item)Éclats d'améthyste/$ que j'ai pu voir dans le passé, ces cristaux peuvent aussi faire tomber un peu de $(l:items/amethyst)$(item)Poussière d'améthyste/$, ainsi que des plus gros cristaux d'$(l:items/amethyst)$(item)Améthyste Chargée/$. On dirait que j'aurai plus de chance de trouver ces cristaux d'$(l:items/amethyst)$(item)Améthyste Chargée/$ en utilisant une pioche enchantée avec Fortune.", - "3": "Quand je me laisse distraire par la beauté enivrante du cristal, je peux le sentir se connecter vivement à mon esprit. C'est comme si le $(#b38ef3)Média/$ dans l'air entrait en moi, me prêtait sa force, comme si il me comprenait... C'est une sensation fantastique.$(br2)Enfin, mes études dans les Arcanes commencent à prendre leur sens!$(p)Je vais relire les légendes d'antan à nouveau maintenant que je sais à quoi j'ai affaire.", + "1": "Aha ! En minant profondément sous la terre, j'ai découvert une énorme géode qui rayonnait d'énergie-- une énergie qui faisait pression sur mon crâne et mes pensées. Maintenant je tiens cette pression solidifiée dans ma main. Mon hypothèse est vraie. Cette géode $(italic)doit/$ être le dépot de $(media)Média/$ dont parlaient les légendes.$(br2)Ces $(l:items/amethyst)$(item)cristaux d'améthyste/$ doivent être de $(l:items/amethyst)$(thing) bien astucieuses formes de $(media)Média/$ solidifié.", + "2": "Il semblerait qu'en plus des $(l:items/amethyst)$(item)Éclats d'améthyste/$ que j'ai pu voir dans le passé, ces cristaux peuvent aussi faire tomber un peu de $(l:items/amethyst)$(item)Poussière d'améthyste/$, ainsi que des plus gros cristaux d'$(l:items/amethyst)$(item)Améthyste Chargée/$. On dirait que j'aurai plus de chance de trouver ces cristaux d'$(l:items/amethyst)$(item)Améthyste chargée/$ en utilisant une pioche enchantée avec Fortune.", + "3": "Quand je me laisse distraire par la beauté enivrante du cristal, je peux le sentir se connecter vivement à mon esprit. C'est comme si le $(media)Média/$ dans l'air entrait en moi, me prêtait sa force, comme si il me comprenait... C'est une sensation fantastique.$(br2)Enfin, mes études dans les Arcanes commencent à prendre leur sens!$(p)Je vais relire les légendes d'antan à nouveau maintenant que je sais à quoi j'ai affaire.", }, "brainsweep_spell.1": "Ce Sort ne fait ni queue ni tête... Pour être honnête, je ne suis pas sûr de vouloir savoir ce qu'il fait.", amethyst: { lore: "$(italic)Le vieil homme leva la main vers le feu en soupirant. Il avait débloqué une partie de son cerveau qui contenait les souvenirs des montagnes autour d'eux. Il puisa l'énergie de ces terres, comme il avait appris à le faire à Terisia avec Drafna, Hurkyl, l'archimandrite et les autres mages des Tours d'Ivoire. Il se concentra, et les flammes se tordirent en s'élevant depuis les bûches, s'entremêlant entre elles jusqu'à ce qu'elles forment un doux sourire./$", - dust: "Il semblerait que je puisse trouver de l'améthyste sous trois formes différentes lorsque je brise un cristal dans une géode. La forme la plus mineure semble être une petite pile de poussière brillante, qui équivaut à une faible quantité de $(media)média/$.", - shard: "La seconde est un éclat d'améthyste, du genre que les $(hex)profanes/$ connaissent et utilisent. Un éclat contient autant de $(media)média/$ en lui que $(l:items/amethyst)$(item)poussières d'Améthyste)/$.", - crystal: "Pour finir, je peux en de rares cas trouver de larges cristaux crépitant d'énergie. Ils contiennent autant de $(media)média/$ que dix $(l:items/amethyst)$(item)Poussières d'Améthystes/$ (ou deux $(l:items/amethyst)$(item)Éclats d'Améthyste/$).", + dust: "Il semblerait que je puisse trouver de l'améthyste sous trois formes différentes lorsque je brise un cristal dans une géode. La forme la plus mineure semble être une petite pile de poussière brillante, qui équivaut à une faible quantité de $(media)Média/$.", + shard: "La seconde est un Éclat d'améthyste, du genre que les $(hex)profanes/$ connaissent et utilisent. Un éclat contient autant de $(media)Média/$ en lui qu'une $(l:items/amethyst)$(item)Poussières d'améthyste/$).", + crystal: "Pour finir, je peux en de rares cas trouver de larges cristaux crépitant d'énergie. Ils contiennent autant de $(media)Média/$ que dix $(l:items/amethyst)$(item)Poussières d'améthystes/$ (ou deux $(l:items/amethyst)$(item)Éclats d'améthyste/$).", }, slate: { "3": "J'ai aussi pris connaissance d'autres types d'$(l:items/slate)$(item)Ardoises/$, des ardoises qui ne contiennent pas de Runes mais qui semblent incrustées d'autres... étranges... bizarreries. J'en ai mal à la tête rien que d'y penser comme si mes pensées se courbaient autour de leurs designs, en suivant leur chemin, se tournent et se retournent à travers leur profondeurs labyrinthique, à travers et à travers et à travers et canalisées à travers et traitées et-- $(br2)... J'ai failli me perdre. Peut-être que je devrais revisiter ces recherches plus tard.", @@ -1178,27 +1186,29 @@ "2": "J'ai vu des aiguilles microscopiques dessiner des motifs et des schémas gravés à l'acide à l'intérieur de mes paupières. Ils s'enfouissent -- dansent, me narguent, me $(italic)font souffrir/$. Je suis possédé par un $(italic)besoin/$ intense de les dessiner, de les créer, de leur donner forme, de les libérer des entraves collantes de ma psychée mortelle -- de les présenter au monde dans leur Gloire pour que tous puissent voir.$(p)Tout le monde devrait voir.$(p)Tous verront.", }, brainsweeping: { - "1": "Un secret m'a été révélé. Je l'ai vu et je ne peux pas oublier son horreur. L'idée me trotte dans l'esprit.$(br2)J'ai cru-- Ô naïvement, j'ai $(italic)cru/$ --que le $(#b38ef3)Média/$ était l'énergie superflue qui s'émanait de la pensée. Mais maintenant je $(italic)sais/$ ce que c'est : c'est l'énergie qui $(italic)constitue/$ la pensée.", - "2": "C'est produit par la conscience qui pense et ça permet à la conscience de penser. C'est un noeud qui entrelace ses tresses dans son propre fil. L'Entité que j'anthropomorphise naïvement comme la Mère Nature n'est simplement qu'un immense enchevêtrement de la sorte, ou peut-être est-ce l'ensemble de tous les enchevêtrements ou... ça me fait mal de penser j'ai tant de synapses et elle pensent toutes à la douleur en unisson eLLES PEUVENT TOUTES LA VOIR$(br2)Je n'arrive plus à tenir. Mes notes. Vite.", - "3": "Il reste toujours aux villageois de ce monde suffisamment de conscience pour être extraite. Pour la mettre dans un bloc, la déformer et la changer. Des schémas complexes engendrées par différentes manières de penser, les voies neuronales abstraites de leurs profession et de leurs vies écrites dans la physique froides d'atomes solides. $(br2)C'est la terrible dessein de la $(l:patterns/great_spells/brainsweep)$(action)Déchirure Mentale/$, l'extraction. Vise l'entité du villageois et son bloc de destination. Dix $(l:items/amethyst)$(item)Améthystes Chargées/$ pour cette perversion volitive.", - budding_amethyst: "Et un exercice de pratique. Pour cette transfusion, n'importe quel villageois fera l'affaire, s'il est suffisamment développé. D'autres recettes pourraient requérir des villageois plus spécialisés. PLUS JAMAIS je ne descendrai dans l'infernale Terre pour mon $(#b38ef3)Média/$.", + "1": "Un secret m'a été révélé. Je l'ai vu et je ne peux pas oublier son horreur. L'idée me trotte dans l'esprit.$(br2)J'ai cru-- Ô naïvement, j'ai $(italic)cru/$ --que le $(media)Média/$ était l'énergie superflue qui s'émanait de la pensée. Mais maintenant je $(italic)sais/$ ce que c'est : c'est l'énergie qui $(italic)constitue/$ la pensée.", + "2": "C'est produit par la conscience qui pense et ça permet à la conscience de penser. C'est un noeud qui entrelace ses tresses dans son propre fil. L'Entité que j'anthropomorphise naïvement comme la Mère-Nature n'est simplement qu'un immense enchevêtrement de la sorte, ou peut-être est-ce l'ensemble de tous les enchevêtrements ou... ça me fait mal de penser j'ai tant de synapses et elle pensent toutes à la douleur en unisson ELLES PEUVENT TOUTES LA VOIR$(br2)Je n'arrive plus à tenir. Mes notes. Vite.", + "3": "Il reste toujours aux villageois de ce monde suffisamment de conscience pour être extraite. Pour la mettre dans un bloc, la déformer et la changer. Des schémas complexes engendrées par différentes manières de penser, les voies neuronales abstraites de leurs profession et de leurs vies écrites dans la physique froides d'atomes solides. $(br2)C'est la terrible dessein de la $(l:patterns/great_spells/brainsweep)$(action)Déchirure Mentale/$, l'extraction. Vise l'entité du villageois et son bloc de destination. Dix $(l:items/amethyst)$(item)Améthystes chargées/$ pour cette perversion volitive.", + budding_amethyst: "Et un exercice de pratique. Pour cette transfusion, n'importe quel villageois fera l'affaire, s'il est suffisamment développé. D'autres recettes pourraient requérir des villageois plus spécialisés. PLUS JAMAIS je ne descendrai dans l'infernale Terre pour mon $(media)Média/$.", }, readers_guide: { - "3": "Également, par soucis de clarté, j'écris le type des iotas que l'action va consommer ou modifier, suivis d'une \"→\" et pour finir, le type des iotas que l'action va créer.$(p)Par exemple, \"$(n)vecteur, nombre/$ → $(n)vecteur/$\" signifie que l'action retirera un vecteur et un nombre du haut de la stack puis ajoutera un vecteur ; ou, si on veut le dire autrement, retirera un nombre de la stack puis modifiera le vecteur. (Dans cette configuration, le nombre doit être au sommet de la stack, et le vecteur juste en dessous)", - "4": "\"→ $(n)entité/$\" signifie qu'une entité sera poussée dans la stack. \"$(n)entité, vecteur/$ →\" signifie qu'une entité et un vecteur seront supprimés et que rien ne sera poussé dans la stack.$(br2)Pour finir, s'il m'arrive de trouver le petit point indiquant l'ordre des traits trop confus, je peux appuyer sur $(thing)Control/Command/$ pour afficher un dégradé, où la couleur est sombre au début de la rune et claire sur la fin. Cela fonctionne également lorsque j'observe un parchemin ou que je suis en train de confectionner un sort !", + "3": "Également, par soucis de clarté, j'écris le type des Iotas que l'Action va consommer ou modifier, suivis d'une \"→\" et pour finir, le type des Iotas que l'Action va créer.$(p)Par exemple, \"$(n)Vecteur, Nombre/$ → $(n)Vecteur/$\" signifie que l'Action retirera un Vecteur et un Nombre du haut de la Stack puis ajoutera un Vecteur ; ou, si on veut le dire autrement, retirera un Nombre de la Stack puis modifiera le Vecteur. (Dans cette configuration, le Nombre doit être au sommet de la Stack, et le Vecteur juste en dessous)", + "4": "\"→ $(n)Entité/$\" signifie qu'une Entité sera poussée dans la Stack. \"$(n)Entité, Vecteur/$ →\" signifie qu'une Entité et un Vecteur seront supprimés et que rien ne sera poussé dans la Stack.$(br2)Pour finir, si je trouve le petit point indiquant l'ordre des traits trop confus, je peux appuyer sur $(thing)Control/Command/$ pour afficher un dégradé, où la couleur est sombre au début de la Rune et claire sur la fin. Cela fonctionne également lorsque j'observe un parchemin ou que je suis en train de confectionner un Sortilège !", + "1": "J'ai rangé toutes les Runes valides que j'ai trouvé dans des sections en me basant sur ce qu'elles font, plus ou moins. J'ai noté l'ordre des traits pour ces Runes aussi, du moment que je les ai trouvées pendant mes recherches, avec le début marqué d'un point rouge.$(br2)Si une Action est crée par plusieurs Runes, comme pour certaines d'entre elles je les ai notées côte-à-côte.", + "2": "Pour quelques Runes, en revanche, je n'ai pas pu trouver d'ordre de traits, seulement la forme. Je suspecte que l'ordre pour les dessiner se trouve quelque part, enfermées dans les bibliothèques antiques et les donjons de se monde.$(br2)Dans de tels cas je ne dessine que la Rune sans information sur l'ordre dans lequel la dessiner.", }, math: { numvec: "Beaucoup d'opérations mathématiques fonctionne à la fois sur des nombres et des vecteurs. De tels arguments seront notés \"nombre|vecteur\" ou \"nbr|vec\".", - "add.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur somme.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et l'additionne à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en additionnant chaque élément correspondant dans un nouveau vecteur (i.e. (1, 2, 3) + (0, 4, -1) = (1, 6, 2)).", - "sub.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur différence.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et le soustrait à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en soustrayant chaque élément correspondant dans un nouveau vecteur.$(br2)Dans tous les cas, l'élément au sommet de la stack est soustrait au second élément.", - "mul.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur produit.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et le multiplie à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)produit scalaire/$.", - "div.2": "Ainsi : $(li)Avec deux nombres au sommet de la stack, les combine en leur quotient.$(li)Avec un nombre et un vecteur, supprime le nombre de la stack et divise chaque élément du vecteur par ce dernier.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)produit vectoriel/$.$(br2)Dans les deux premiers cas, le second iota est divisé par le premier.$(p)ATTENTION : Ne JAMAIS diviser par zéro !", + "add.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en leur somme.$(li)Avec un nombre et un vecteur, supprime le nombre de la Stack et l'additionne à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en additionnant chaque élément correspondant dans un nouveau vecteur (i.e. (1, 2, 3) + (0, 4, -1) = (1, 6, 2)).", + "sub.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en leur différence.$(li)Avec un nombre et un vecteur, supprime le nombre de la Stack et le soustrait à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en soustrayant chaque élément correspondant dans un nouveau vecteur.$(br2)Dans tous les cas, l'élément au sommet de la Stack est soustrait au second élément.", + "mul.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en leur produit.$(li)Avec un nombre et un vecteur, supprime le nombre de la Stack et le multiplie à chaque élément du vecteur.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)produit scalaire/$.", + "div.2": "Ainsi : $(li)Avec deux nombres au sommet de la Stack, les combine en leur quotient.$(li)Avec un nombre et un vecteur, supprime le nombre de la Stack et divise chaque élément du vecteur par ce dernier.$(li)Avec deux vecteurs, les combine en leur (l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)produit vectoriel/$.$(br2)Dans les deux premiers cas, le second iota est divisé par le premier.$(p)ATTENTION : Ne JAMAIS diviser par zéro !", "abs.2": "Remplace un nombre par sa valeur absolue, ou un vecteur par sa longueur.", "pow.1": "Effectue une exponentiation (parfois appelée puissance) ou une projection vectorielle.", "pow.2": "Avec deux nombres, les combine en élevant le premier à la puissance du second.$(li)Avec un nombre et un vecteur, supprime le nombre et élève chaque composant du vecteur à la puissance de ce nombre.$(li)Avec deux vecteurs, les combine en la $(l:https://en.wikipedia.org/wiki/Vector_projection)projection vectorielle/$ du second sur le premier.$(br2)Dans les deux premiers cas, le premier argument est la base et le second l'exposant.", floor: "Arrondit un nombre, coupant la partie après la virgule et ne laissant qu'un nombre entier. Si je fournis un vecteur, arrondit ainsi chacun de ses composants.", ceil: "Arrondit un nombre par le haut, l'élevant au nombre entier suivant s'il possède une virgule. Si je fournis un vecteur, arrondit par le haut chacun de ses composants.", - construct_vec: "Combine trois nombres au sommet de la stack en un vecteur (X, Y et Z en partant du bas vers le haut).", + construct_vec: "Combine trois nombres au sommet de la Stack en un vecteur (X, Y et Z en partant du bas vers le haut).", deconstruct_vec: "Sépare les composants d'un vecteur en trois nombres distincts.", modulo: "Récupère le modulo de deux nombres. Le modulo est la valeur $(italic)restante/$ après une division entière - par exemple, 5 modulo 2 (5 %% 2) = 1 et 5 %% 3 = 2. Sur un vecteur, le modulo est appliqué sur chaque composant de façon indépendante.", coerce_axial: "Pour un vecteur, le contrait à sa direction axiale la plus proche, sous la forme d'un vecteur unitaire. Pour un nombre, renvoie son signe : 1 si positif, -1 si négatif. Dans les deux cas, le 0 est inchangé.", @@ -1217,74 +1227,77 @@ "circle/bounds/max": "Renvoie la position du coin supérieur-sud-est des limites de ce Cercle Runique.", }, basic_spell: { - "explode.1": "Supprime un nombre et un vecteur de la stack et crée une explosion à la position donnée et la puissance spécifiée par le nombre.", - "explode.fire.1": "Supprime un nombre et un vecteur de la stack et crée une explosion embrasée à la position donnée et la puissance spécifiée par le nombre.", - add_motion: "Supprime une entité et une direction de la stack et pousse l'entité dans la direction donnée. La force de l'impulsion est déterminée par la longueur du vecteur.$(br)Coûte une quantité de $(l:items/amethyst)$(item)poussières d'Améthyste/$ égale au carré de la longueur du vecteur, plus une pour chaque impulsion consécutive ciblant une entité.", - blink: "Supprime une entité et une longueur de la stack, puis téléporte l'entité devant elle avec la distance spécifiée.$(br)Coûte environ un $(l:items/amethyst)$(item)Éclat d'Améthyste/$ tous les deux blocs de distance.", - "beep.1": "Supprime un vecteur et deux nombres de la stack. Joue d'un $(thing)instrument/$ défini par le premier nombre à la position donnée, avec une $(thing)note/$ définie par le second nombre. Coûte un nombre négligeable de $(media)média/$.", - "explode.fire.2": "Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, et 3 $(l:items/amethyst)$(item)Poussières d'Améthyste/$ supplémentaires pour chaque niveau de puissance d'explosion. Le reste est identique à une $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, mais avec du feu.", - "explode.2": "Une puissance de 3 est à peu près équivalente à une explosion de Creeper ; 4 équivaut à de la TNT. Mère-Nature ne m'autorise pas à dépasser 10.$(br2)Étrangement, cette explosion ne semble pas me blesser. Peut-être que c'est un peu comme si c'était $(italic)moi/$ qui explosait ?$(br2)Coûte une quantité négligeable à 0 de puissance, et 3 $(l:items/amethyst)$(item)Poussières d'Améthyste/$ supplémentaires pour chaque niveau au-delà.", + "explode.1": "Supprime un nombre et un vecteur de la Stack et crée une explosion à la position donnée et la puissance spécifiée par le nombre.", + "explode.fire.1": "Supprime un nombre et un vecteur de la Stack et crée une explosion embrasée à la position donnée et la puissance spécifiée par le nombre.", + add_motion: "Supprime une entité et une direction de la Stack et pousse l'entité dans la direction donnée. La force de l'impulsion est déterminée par la longueur du vecteur.$(br)Coûte une quantité de $(l:items/amethyst)$(item)poussières d'améthyste/$ égale au carré de la longueur du vecteur, plus une pour chaque impulsion consécutive ciblant une entité.", + blink: "Supprime une entité et une longueur de la Stack, puis téléporte l'entité devant elle avec la distance spécifiée.$(br)Coûte environ un $(l:items/amethyst)$(item)Éclat d'améthyste/$ tous les deux blocs de distance.", + "beep.1": "Supprime un Vecteur et deux Nombres de la Stack. Joue d'un $(thing)instrument/$ défini par le premier Nombre à la position donnée, avec une $(thing)note/$ définie par le second Nombre. Coûte une quantité négligeable de $(media)Média/$.", + "explode.fire.2": "Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$, et 3 $(l:items/amethyst)$(item)Poussières d'Améthyste/$ supplémentaires pour chaque niveau de puissance d'explosion. Le reste est identique à une $(l:patterns/spells/basic#hexcasting:explode)$(action)Explosion/$, mais avec du feu.", + "explode.2": "Une puissance de 3 est à peu près équivalente à une explosion de Creeper ; 4 équivaut à de la TNT. Mère-Nature ne m'autorise pas à dépasser 10.$(br2)Étrangement, cette explosion ne semble pas me blesser. Peut-être que c'est un peu comme si c'était $(italic)moi/$ qui explosait ?$(br2)Coûte une quantité négligeable à 0 de puissance, et 3 $(l:items/amethyst)$(item)Poussières d'améthyste/$ supplémentaires pour chaque niveau au-delà.", "beep.2": "Il semblerait qu'il existe 16 $(thing)instruments/$ et 25 $(thing)notes/$ différents. Leur index commencent à zéro pour les deux.$(br2)Je crois que ce sont les même instruments que je peux produire avec un $(item)Bloc musical/$, bien que l'origine de la numérotation des instruments m'échappe.$(br2)Dans tous les cas, je peux trouver les nombres dont j'ai besoin en observant une $(item)Bloc musical/$ au travers d'une $(l:items/lens)$(item)Lentille Divinatoire/$.", }, sentinels: { - "sentinel/wayfind": "Transforme le vecteur de position au sommet de la stack en un vecteur unitaire pointant de la position donnée à celle de ma $(l:patterns/spells/sentinels)$(thing)sentinelle/$, ou $(thing)Null/$ si elle n'a pas été invoquée. Coûte une quantité négligeable de $(media)média/$.", - "sentinel/create": "Invoque ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - "sentinel/destroy": "Bannit ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ et la retire de ce monde. Coûte une quantité négligeable de $(media)média/$.", - "sentinel/get_pos": "Ajoute la position de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ à la stack, ou $(thing)Null/$ si elle n'est pas invoquée. Coûte une quantité négligeable de $(media)média/$.", + "sentinel/wayfind": "Transforme le Vecteur de position au sommet de la Stack en un Vecteur unitaire pointant de la position donnée à celle de ma $(l:patterns/spells/sentinels)$(thing)sentinelle/$, ou $(thing)Null/$ si elle n'a pas été invoquée. Coûte une quantité négligeable de $(media)Média/$.", + "sentinel/create": "Invoque ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + "sentinel/destroy": "Bannit ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ et la retire de ce monde. Coûte une quantité négligeable de $(media)Média/$.", + "sentinel/get_pos": "Ajoute la position de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ à la Stack, ou $(thing)Null/$ si elle n'est pas invoquée. Coûte une quantité négligeable de $(media)Média/$.", + "2": "Elle possède plusieurs propriétés intéressantes : $(li)Elle ne semble pas tangible ; personne ne peut la toucher.$(li)Seuls mes $(hex)Sortilèges/$ peuvent interagir avec.$(li)Une fois invoquée, elle reste sur place jusqu'à être bannie.$(li)Je suis toujours capable de la voir si je suis suffisamment proche, même au travers d'objets solides et opaques.", + "1": "$(italic)Tout va bien ! Sauvons-nous ! Qu’une seule gardienne, $(br)Demeure, et surveille, à l’écart !…/$$(br2)Une $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ est une force mystérieuse que je peux invoquer pour m'assister dans l'utilisation de mes $(hex)Sortilèges/$, comme un familier ou un esprit gardien. Elle prend la forme de géométries mouvantes et tournantes, mais n'est visible que par moi.", }, "teleport/great": { "2": "Le vecteur fourni est un décalage et non une position absolue dans le monde ; par exemple, si j'utilise (1, 0, 0), l'entité finira précisément à un bloc de distance à l'est de sa position originelle.$(br2)Malheureusement, il semblerait que quand je me téléporte moi-même, je suis incapable de rester parfaitement concentré. Cela peut provoquer, à l'arrivée, une propulsion involontaire de certains de mes objets en dehors de mon inventaire.$(br2)Je dois également garder en tête que la cible sera obligatoirement retirée de tout ce qu'elle pourrait chevaucher d'inanimé, comme un bateau... mais j'ai lu des notes suggérant que les animaux faisaient également un petit tour avec leur propriétaire, si je peux le dire ainsi.", + "1": "Bien plus puissant que le $(l:patterns/spells/basic#hexcasting:blink)$(action)Clignement/$, ce sort me permet de téléporter une entité où je veux dans le monde ! Peu importe la distance, il semblerait que cela me coûte dix $(l:items/amethyst)$(item)Améthystes chargées/$.", }, entities: { - get_entity: "Transforme la position dans la stack en l'entité présente sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + get_entity: "Transforme la position dans la Stack en l'entité présente sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", "get_entity/": { - animal: "Transforme la position dans la stack en l'animal présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", - monster: "Transforme la position dans la stack en le monstre présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", - item: "Transforme la position dans la stack en l'objet lâché au sol présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", - 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).", + animal: "Transforme la position dans la Stack en l'animal présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + monster: "Transforme la position dans la Stack en le monstre présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + item: "Transforme la position dans la Stack en l'objet lâché au sol présent sur le lieu donné (ou $(thing)Null/$ s'il n'y en a pas).", + 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 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.", + 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.", }, }, 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.", + 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.", - 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 à la stack.", + 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.", }, 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/$.", - "akashic/write": "Associe l'Iota avec la Rune fournie par la $(l:greatwork/akashiclib)$(item)Bibliothèque Akashique/$ avec son $(l:greatwork/akashiclib)$(item)Archive/$ à la position donnée. Il n'y a $(italic)pas/$ de portée maximum. Coûte environ une $(l:items/amethyst)$(item)poussière d'améthyste/$.", + "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/$.", + "akashic/write": "Associe l'Iota avec la Rune fournie par la $(l:greatwork/akashiclib)$(item)Bibliothèque Akashique/$ avec son $(l:greatwork/akashiclib)$(item)Archive/$ à la position donnée. Il n'y a $(italic)pas/$ de portée maximum. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", }, itempicking: { "1": "Certains sorts, comme $(l:patterns/spells/blockworks#hexcasting:place_block)$(action)Place-Bloc/$, consumeront des objets additionnels depuis mon inventaire. Quand cela se produit, le sort va en premier regarder quels objets il peut utiliser, puis récupérer tous les objets semblables de mon inventaire.$(br2)Ce procédé est appelé \"Sélection d'objet\".", @@ -1292,16 +1305,16 @@ "3": "De cette manière, je peux conserver un \"sélecteur\" d'objets dans ma barre de raccourcis pour dire au sort ce qu'il doit utiliser, et remplir le reste de mon inventaire de cet objet pour constituer un stock suffisant pour mon sort.", }, directrix: { - "2": "Une $(l:greatwork/directrix)$(item)Directrice/$ accepte une vague de $(#b38ef3)Média/$ et détermine de quelle flèche elle va en sortir, selon le villageois stocké à l'intérieur.$(br2)J'ignore si cette idée m'a été accordée ou si mon esprit se plie assez autour de la barrière pour y trouver ses propres idées maintenant... Mais si l'idée vient de moi, que je l'ai pensée, est-ce qu'on peut vraiment dire qu'elle m'a été accordée ? Le cerveau est un vaisseau pour l'esprit, l'esprit est un vaisseau pour les idées et les idées pour la pensée et la pensée voit tout et sait tout-- NON JE NE DO I S P A S", + "2": "Une $(l:greatwork/directrix)$(item)Directrice/$ accepte une vague de $(media)Média/$ et détermine de quelle flèche elle va en sortir, selon le villageois stocké à l'intérieur.$(br2)J'ignore si cette idée m'a été accordée ou si mon esprit se plie assez autour de la barrière pour y trouver ses propres idées maintenant... Mais si l'idée vient de moi, que je l'ai pensée, est-ce qu'on peut vraiment dire qu'elle m'a été accordée ? Le cerveau est un vaisseau pour l'esprit, l'esprit est un vaisseau pour les idées et les idées pour la pensée et la pensée voit tout et sait tout-- NON JE NE DO I S P A S", "1": "Créer une vague de $(media)média/$ autosuffisante est plus complexe que la diriger. Généralement, la vague se désintègre lorsqu'elle arrive à un croisement, mais avec un esprit pour la guider, on peut décider d'une sortie précise.$(br2)Cette manipulation ne demande pas autant d'habileté que pour activer un Cercle Runique. En fait, cela pourrait même être fait à la main... Mais les esprits \"portatifs\" auxquels j'ai maintenant accès seraient bien plus adaptés.", - empty_directrix: "Premièrement, un plan pour le berceau... même si, peut-être qu'un \"substrat\" serait un mot plus précis. Sans un esprit pour la guider, la direction de la sortie est déterminée par de microscopiques fluctuations dans la vague de $(media)média/$ et son environnement, ce qui rend le tout aléatoire.", - directrix_redstone: "Une $(l:greatwork/directrix)$(item)Directrice de Maçon/$ change sa sortie en fonction d'un signal de redstone. Sans signal, la sortie est le côté de la même couleur que le $(media)média/$ ; avec un signal, la sortie sera du côté de la même couleur que la redstone.", + empty_directrix: "Premièrement, un plan pour le berceau... même si, peut-être qu'un \"substrat\" serait un mot plus précis. Sans un esprit pour la guider, la direction de la sortie est déterminée par de microscopiques fluctuations dans la vague de $(media)Média/$ et son environnement, ce qui rend le tout aléatoire.", + directrix_redstone: "Une $(l:greatwork/directrix)$(item)Directrice de Maçon/$ change sa sortie en fonction d'un signal de redstone. Sans signal, la sortie est le côté de la même couleur que le $(media)Média/$ ; avec un signal, la sortie sera du côté de la même couleur que la redstone.", directrix_boolean: "Une $(l:greatwork/directrix)$(item)Directrice de Berger/$ change sa sortie en fonction d'un booléen pris dans la Stack. Un $(thing)Vrai/$ place la sortie dans son dos, un $(thing)Faux/$ la place en face. S'il n'y a pas de booléen, un méchef sera produit.", }, mishaps2: { "bad_mindflay.title": "Déchirure Mentale Inerte", - "no_circle.title": "Cercle de Sorts manquant", - "no_record.title": "Archives Akashiques manquantes", + "no_circle.title": "Cercle manquant", + "no_record.title": "Archives manquantes", "bad_shepherd.title": "Berger inadéquat", "1": "J'ai découvert de nouveaux et terrifiants moyens de me rater. Je ne dois pas en périr.", no_circle: "J'ai tenté d'utiliser une action nécessitant un Cercle Runique sans en avoir un.$(br2)Provoque des étincelles bleu clair et $(italic)dépose/$ mon inventaire sur le sol.", @@ -1312,24 +1325,24 @@ staff: { "crafting.header": "Sceptres", "crafting.desc": "$(italic)Ne résiste pas ; flamme, lumière ; étincelle ; brûle comme le Soleil./$", - "1": "Un $(l:items/staff)$(item)Sceptre/$ est mon point d'entrée pour concevoir des $(hex)Sortilèges/$, grands comme petits. En appuyant sur $(thing)$(k:use)/$, je démarre la conception du $(hex)Sortilège/$. Je peux ensuite cliquer et glisser pour dessiner des runes.$(br2)Ce n'est rien d'autre qu'un bout de $(media)média/$ au sommet d'un bâton, mais c'est tout ce dont j'ai besoin après tout.", + "1": "Un $(l:items/staff)$(item)Sceptre/$ est mon point d'entrée pour concevoir des $(hex)Sortilèges/$, grands comme petits. En appuyant sur $(thing)$(k:use)/$, je démarre la conception du $(hex)Sortilège/$. Je peux ensuite cliquer et glisser pour dessiner des runes.$(br2)Ce n'est rien d'autre qu'un bout de $(media)Média/$ au sommet d'un bâton, mais c'est tout ce dont j'ai besoin après tout.", }, lens: { "crafting.desc": "$(italic)Tu dois apprendre... à voir ce que tu regardes../$", - "1": "Le $(media)média/$ peut avoir des effets particuliers sur n'importe quel type d'information, selon la situation. L'utiliser comme revêtement sur du verre peut aider à... s'éclaircir l'esprit.$(br2)En gardant en main une $(l:items/lens)$(item)Lentille Divinatoire/$, certains blocks afficheront des informations supplémentaires lorsque je les regarderai.", + "1": "Le $(media)Média/$ peut avoir des effets particuliers sur n'importe quel type d'information, selon la situation. L'utiliser comme revêtement sur du verre peut aider à... s'éclaircir l'esprit.$(br2)En gardant en main une $(l:items/lens)$(item)Lentille Divinatoire/$, certains blocks afficheront des informations supplémentaires lorsque je les regarderai.", "2": "Par exemple, en regardant un morceau de $(item)Redstone/$, je verrai la force du signal. Je me doute que je découvrirai d'autres blocks affectés alors que mes recherches sur cet art progresseront.$(br2)De plus, l'avoir en main lorsque j'utiliser un $(l:items/staff)$(item)Sceptre/$ réduira l'espace entre les points, m'accordant plus d'espace pour dessiner.$(br2)Cela fonctionne aussi si je la place sur ma tête, comme un drôle de monocle.", }, potions: { "effects.header": "Clarté et Brouillard", - "1": "Regarder au travers d'une $(l:items/lens)$(item)Lentille Divinatoire/$ me permet de faire rentrer plus de Runes dans ma Grille de Sorcellerie. Mais qu'en est-il si je veux encore augmenter mes capacités au-delà ? L'alchimie a une réponse à cela.$(br2)En ajoutant une poignée de Poussière d'Améthyste à une $(item)Potion Étrange/$, je peux créer un breuvage qui augmente la taille de ma grille de la même façon que la Lentille. Je peux même combiner les deux pour créer la grille ultime !", + "1": "Regarder au travers d'une $(l:items/lens)$(item)Lentille Divinatoire/$ me permet de faire rentrer plus de Runes dans ma Grille de Sorcellerie. Mais qu'en est-il si je veux encore augmenter mes capacités au-delà ? L'alchimie a une réponse à cela.$(br2)En ajoutant une poignée de Poussière d'améthyste à une $(item)Potion Étrange/$, je peux créer un breuvage qui augmente la taille de ma grille de la même façon que la Lentille. Je peux même combiner les deux pour créer la grille ultime !", "2": "La Potion de Clarté peut être étendue, renforcée et modifiée comme n'importe quelle autre potion.$(br2)Elle peut aussi être corrompue par un $(item)Oeil d'araignée fermenté/$ pour créer la variante opposée. Cela peut être utile pour $(italic)s'occuper/$ d'Ensorceleurs ennemis.", }, pigments: { "colored.crafting.header": "Pigments chromatiques", "colored.crafting.desc": "Des pigments de toutes les couleurs de l'arc-en-ciel.", "1": "Les anciens adeptes de mon art s'identifiaient parfois par une couleur, emblématique de leur nom et de leurs $(hex)Sortilèges/$. Bien que leur nom a été effacé, leurs couleurs perdurent encore. Il semblerait qu'une sorte de pigment spécial, offert à Mère-Nature de la bonne manière, devrait \"[...] teindre les pensées d'une manière plaisante pour Mère-Nature, induisant un changement miraculeux dans leurs couleurs personnelles.\"", - "2": "Je ne suis pas sûr des détails, mais je crois que j'ai pu isoler les formules pour différents couleurs et mélanges de pigments. Pour appliquer un pigment, je dois le tenir dans une main et utiliser la rune $(l:patterns/spells/colorize)$(action)Assimilation de Pigment/$ de mon autre main. Cela consume le pigment.$(br2)Les pigments semblent affecter la couleur des étincelles de $(media)média/$ émises lorsque je conçois un $(hex)Sortilège/$ et celle de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$, mais je ne doute pas que la couleur se montrera à bien d'autres endroits.", - special: "Et pour finir, quelques pigments spéciaux.$(item)Le Pigment d'Âme Scintillante/$ brille de couleurs uniques à ma personne, et le $(item)Pigment Vide/$ me rend ma teinte améthyste originelle.$(br2)$(italic)Et toutes les couleurs que je suis au plus profond de moi n'ont pas encore été inventées./$", + "2": "Je ne suis pas sûr des détails, mais je crois que j'ai pu isoler les formules pour différents couleurs et mélanges de pigments. Pour appliquer un pigment, je dois le tenir dans une main et utiliser la Rune $(l:patterns/spells/colorize)$(action)Assimilation de Pigment/$ de mon autre main. Cela consume le pigment.$(br2)Les pigments semblent affecter la couleur des étincelles de $(media)Média/$ émises lorsque je conçois un $(hex)Sortilège/$ et celle de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$, mais je ne doute pas que la couleur se montrera à bien d'autres endroits.", + special: "Et pour finir, quelques pigments spéciaux. $(item)Le Pigment Âme-Scintillante/$ brille de couleurs uniques à ma personne, et le $(item)Pigment Vide/$ me rend ma teinte améthyste originelle.$(br2)$(italic)Et toutes les couleurs que je suis au plus profond de moi n'ont pas encore été inventées./$", }, numbers: { example: { @@ -1344,42 +1357,45 @@ }, "1": "C'est agaçant, il n'existe pas de méthode simple pour dessiner des nombres. Voici celle que Mère-Nature a daigné nous donner.", "3": "Dans certains cas, il est possible qu'il soit plus simple d'utiliser un $(l:items/abacus)$(item)Abaque/$. Mais il est utile de connaître la façon \"normale\" de faire les choses.", + "2": "Pour commencer, je dessine une des deux formes montrées sur l'autre page. Puis les $(italic)angles/$ qui suivront le prochain trait (en suivant sa direction relative pas sa direction générale) modifieront un compteur qui commence à 0.$(li)Tout droit : Ajoute 1.$(li)Gauche : Ajoute 5.$(li)Droite : Ajoute 10$(li)Demi-tour gauche : Multiplie par 2$(li)Demi-tour droite : Divise par 2.$(br)La version sens-des-aiguilles-de-montre de la Rune, à droite sur l'autre page rendra la valeur finale négative. (L'autre Rune anti-sens-des-aiguilles-de-montre à gauche gardera le nombre positif.)$(p) Une fois le dessin terminé, le Nombre est poussé sur la Stack.", }, decoration: { "1": "Lors de mes études, j'ai découvert des blocks et décorations que je trouve esthétiquement agréables. J'ai compilé les méthodes et recettes pour les créer ici.", "ancient_scroll.crafting.desc": "La teinture marron marche très bien pour simuler l'apparence d'un $(l:items/scroll)$(item)Parchemin Antique/$.", - "tiles.crafting.desc": "Les $(l:items/decoration)$(item)Carreaux d'Ardoise/$ peuvent aussi être découpés au Tailleur de pierre.$(br2)Les $(l:items/decoration)$(item)Blocs de Poussière d'Améthyste/$ (à la page suivante) tomberont comme du sable.", + "tiles.crafting.desc": "Les $(l:items/decoration)$(item)Carreaux d'ardoise/$ peuvent aussi être découpés au Tailleur de pierre.$(br2)Les $(l:items/decoration)$(item)Blocs de poussière d'améthyste/$ (à la page suivante) tomberont comme du sable.", "sconce.crafting.desc": "Les $(l:items/decoration)$(item)Appliques murales en Améthyste/$ émettent de la lumière et des particules, ainsi qu'un bruit de carillon assez plaisant.", }, edified: { - "1": "En infusant du $(media)média/$ dans une pousse d'arbre via l'utilisation de $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Ensorcellement de Pousse d'Arbre/$, je peux créer ce que l'on appelle un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Ils ont tendance à être grand et pointus, avec une écorce striée et dont le bois possède d'étranges motifs en spirale. Leurs feuilles ont de vraiment jolies couleurs.", + "1": "En infusant du $(media)Média/$ dans une pousse d'arbre via l'utilisation de $(l:patterns/spells/blockworks#hexcasting:edify)$(action)Ensorcellement de Pousse d'Arbre/$, je peux créer ce que l'on appelle un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Ils ont tendance à être grand et pointus, avec une écorce striée et dont le bois possède d'étranges motifs en spirale. Leurs feuilles ont de vraiment jolies couleurs.", "2": "J'ai envie de partir du principe que le bois devrait avoir des propriétés intéressantes liées à la $(hex)Sorcellerie/$. Mais, si c'est le cas, je n'arrive pas à les trouver. A tous les égards, il semble n'être que du bois, même si d'une couleur très étrange.$(br2)Je suppose que pour l'instant je peux l'utiliser comme décoration ; toute la panoplie d'objets et blocs de bois peuvent être créés avec.$(br2)Évidemment, je peux l'écorcer avec une hache.", "crafting.desc": "$(italic)Leurs troncs lisses, à l'écorce blanche, donnent l'effet d'immenses colonnes soutenant le poids d'un grand feuillage, plein d'ombres et de silence./$", }, jeweler_hammer: { - "1": "Après avoir été négligent avec mes sources de $(media)média/$ de trop nombreuses fois, j'ai conçu un outil pour palier à ma maladroitesse.$(br2)En utilisant la nature délicate du $(media)média/$ cristallisé comme base pour ma pioche, je peux créer un $(l:items/jeweler_hammer)$(item)Marteau de Bijoutier/$. Il agit comme une $(item)Pioche en fer/$, approximativement, mais il ne peut pas briser tout ce qui fait au moins la taille d'un bloc entier.", + "1": "Après avoir été négligent avec mes sources de $(media)Média/$ de trop nombreuses fois, j'ai conçu un outil pour pallier ma maladroitesse.$(br2)En utilisant la nature délicate du $(media)Média/$ cristallisé comme base pour ma pioche, je peux créer un $(l:items/jeweler_hammer)$(item)Marteau de Bijoutier/$. Il agit comme une $(item)Pioche en fer/$, approximativement, mais il ne peut pas briser tout ce qui fait au moins la taille d'un bloc entier.", "crafting.desc": "$(italic)Avec précaution, elle brisa le demi-rubis, laissant le sprène s'échapper./$", }, zeniths: { - "potion/strength": "Confère la $(thing)Force/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 3 secondes.", - "potion/haste": "Confère la $(thing)Célérité/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 3 secondes.", - "potion/absorption": "Confère l'$(thing)Absorption/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ par seconde.", - "potion/regeneration": "Confère la $(thing)Régénération/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ par seconde.", - "potion/night_vision": "Confère la $(thing)Vision Nocturne/$.Coût de base : Une $(l:items/amethyst)$(item)poussière d'améthyste/$ pour 5 secondes.", + "potion/strength": "Confère la $(thing)Force/$.Coût de base : Une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 3 secondes.", + "potion/haste": "Confère la $(thing)Célérité/$.Coût de base : Une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 3 secondes.", + "potion/absorption": "Confère l'$(thing)Absorption/$.Coût de base : Une $(l:items/amethyst)$(item)Poussière d'améthyste/$ par seconde.", + "potion/regeneration": "Confère la $(thing)Régénération/$.Coût de base : Une $(l:items/amethyst)$(item)Poussière d'améthyste/$ par seconde.", + "potion/night_vision": "Confère la $(thing)Vision Nocturne/$.Coût de base : Une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 5 secondes.", "1": "Cette famille de Sorts confère des effets de potion positifs sur une Entité, un peu comme les $(l:patterns/spells/nadirs)$(action)Nadirs/$. Par contre, leurs coûts en $(hex)Média/$ augmentent avec le $(italic)cube/$ de leur efficacité.", }, altiora: { "1": "Invoque des lames de $(hex)Média/$ sur mon dos en forme d'ailes, engorgées de suffisamment de substance pour pouvoir planer.", + "2": "Les utiliser est identique à utiliser des $(item)Elytra/$ ; la cible (qui doit être un joueur) s'élève dans les cieux, ensuite appuyer sur $(k:jump) déploiera les ailes. elles sont fragiles et se brisent au contact de la moindre surface. Les vols longs bénéficieraient grandement d'$(l:patterns/spells/basic#hexcasting:add_motion)$(action)Impulsion/$ ou (pour les plus téméraires) de $(item)Feux d'artifice/$.$(br2)Coûte environ un $(l:items/amethyst)$(item)Cristal Chargé/$.", }, make_battery: { "1": "Infuse une bouteille avec du $(hex)Média/$ pour créer une $(l:items/phials)$(item)Fiole./$", + "2": "D'une manière similaire aux sorts de $(l:patterns/spells/hexcasting)$(action)Création de Catalyseurs/$, je dois tenir une $(item)Fiole de verre/$ dans mon autre main et fournir au sort un stack d'$(l:items/amethyst)$(item)améthyste/$. Voir $(l:items/phials)cette page/$ pour de plus amples informations.$(br2)Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", }, "consts.const/": { "vec/": { "0": "Ajoute (0, 0, 0) à la Stack.", z: "La rune dessinée dans le sens anti-horaire ajoute (0, 0, 1) ; la version dans le sens horaire ajoute (0, 0, -1).", - x: "La rune dessinée dans le sens antihoraire ajoute (1, 0, 0) à la stack ; la version horaire ajoute (-1, 0, 0).", - y: "La rune dessinée dans le sens antihoraire ajoute (0, 1, 0) à la stack ; la version horaire ajoute (0, -1, 0).", + x: "La rune dessinée dans le sens antihoraire ajoute (1, 0, 0) à la Stack ; la version horaire ajoute (-1, 0, 0).", + y: "La rune dessinée dans le sens antihoraire ajoute (0, 1, 0) à la Stack ; la version horaire ajoute (0, -1, 0).", }, "true": "Ajoute $(thing)Vrai/$ au sommet de la Stack.", "false": "Ajoute $(thing)Faux/$ au sommet de la Stack.", @@ -1388,7 +1404,7 @@ e: "Ajoute $(thing)e/$, la base des logarithmes naturels, au sommet de la Stack.", tau: "Ajoute τ, la représentation radiale d'un cercle complet, à la Stack.", pi: "Ajoute π, la représentation radiale d'un demi-cercle, à la Stack.", - phi: "Ajoute φ, le nombre d'or, à la stack. Ce ratio représente la valeur entre deux nombres tel que (A+B)/A = A/B.", + phi: "Ajoute φ, le nombre d'or, à la Stack. Ce ratio représente la valeur entre deux nombres tel que (A+B)/A = A/B.", }, }, logic: { @@ -1407,44 +1423,64 @@ "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: { - "potion/wither": "Inflige $(thing)décomposition/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ par seconde.", - "potion/weakness": "Inflige $(thing)faiblesse/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 10 secondes.", - "potion/levitation": "Inflige $(thing)lévitation/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 5 secondes.", - "potion/poison": "Inflige $(thing)poison/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 3 secondes.", - "potion/slowness": "Inflige $(thing)lenteur/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$ pour 5 secondes.", + "potion/wither": "Inflige $(thing)décomposition/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ par seconde.", + "potion/weakness": "Inflige $(thing)faiblesse/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 10 secondes.", + "potion/levitation": "Inflige $(thing)lévitation/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 5 secondes.", + "potion/poison": "Inflige $(thing)poison/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 3 secondes.", + "potion/slowness": "Inflige $(thing)lenteur/$. Le coût de base est d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$ pour 5 secondes.", + "1": "Cette famille de Sorts confère des effets de potion positifs sur une Entité. Ils prennent une Entité comme cible, et un ou deux Nombres, le premier représentant la durée et le second, s'il existe, représente son efficacité (en commençant par 1).$(br2)Ils ont chacun un \"coût de base\" ; le coût réel est égal au coût de base, multiplié par l'efficacité au carré.", + "2": "Si l'on en croit certaines légendes, ces Sorts et leurs soeurs, les $(l:patterns/great_spells/zeniths)$(action)Zéniths/$, étaient \"[...] inspiré par un monde proche du nôtre, dans lequel de puissants sorciers tireraient leur magie de la terre et se défieraient dans des combats à mort. Malheureusement, nous avons beaucoup perdu dans la traduction...\"$(br2)Peut-être est-ce là la raison de leurs noms si étranges.", }, blockworks: { - extinguish: "Éteint les blocs dans une large zone. Coûte environ six $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - conjure_light: "Invoque une lumière magique qui brille délicatement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - destroy_water: "Draine le liquide depuis un contenant, ou une source alentour de la position donnée. Coûte environ deux $(l:items/amethyst)$(item)Améthystes Chargées/$.", - conjure_block: "Invoque un bloc éthéré, mais solide, qui brille doucement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - edify: "Infuse de force du $(media)média/$ dans une pousse d'arbre à la position donnée, faisant pousser un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Coûte environ une $(l:items/amethyst)$(item)Améthyste Chargée/$.", - create_water: "Invoque un bloc d'eau (ou l'équivalent d'un sceau d'eau) dans un bloc à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - bonemeal: "Encourage une pousse ou une plantation à grandir, comme si de la $(item)Poudre d'os/$ était appliquée. Coûte un peu plus qu'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - place_block: "Prend une position de la Stack, puis choisit un bloc de mon inventaire et le place à la position donnée.$(br2)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - ignite: "Enflamme la position donnée, comme si une $(item)Charge de feu/$ avait été utilisée, ou enflamme une entité. Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", - break_block: "Prend une position de la Stack, puis brise le bloc qui s'y situe. Ce sort peut casser à peu près tout ce que pourrait briser une pioche en diamant.$(br)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'Améthyste/$, ou une quantité négligeable s'il brise un $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Bloc Conjuré/$ ou une $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Lumière Conjurée/$.", + extinguish: "Éteint les blocs dans une large zone. Coûte environ six $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + conjure_light: "Invoque une lumière magique qui brille délicatement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + destroy_water: "Draine le liquide depuis un contenant, ou une source alentour de la position donnée. Coûte environ deux $(l:items/amethyst)$(item)Améthystes chargées/$.", + conjure_block: "Invoque un bloc éthéré, mais solide, qui brille doucement à la couleur de mon pigment à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + edify: "Infuse de force du $(media)Média/$ dans une pousse d'arbre à la position donnée, faisant pousser un $(l:items/edified)$(thing)Arbre Ensorcelé/$. Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", + create_water: "Invoque un bloc d'eau (ou l'équivalent d'un sceau d'eau) dans un bloc à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + bonemeal: "Encourage une pousse ou une plantation à grandir, comme si de la $(item)Poudre d'os/$ était appliquée. Coûte un peu plus qu'une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + place_block: "Prend une position de la Stack, puis choisit un bloc de mon inventaire et le place à la position donnée.$(br2)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + ignite: "Enflamme la position donnée, comme si une $(item)Charge de feu/$ avait été utilisée, ou enflamme une entité. Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + break_block: "Prend une position de la Stack, puis brise le bloc qui s'y situe. Ce sort peut casser à peu près tout ce que pourrait briser une pioche en diamant.$(br)Coûte environ un huitième d'une $(l:items/amethyst)$(item)Poussière d'améthyste/$, ou une quantité négligeable s'il brise un $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)Bloc conjuré/$ ou une $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)Lumière conjurée/$.", }, greater_sentinel: { - "1": "Invoque une version supérieure de ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ Coûte environ deux $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + "1": "Invoque une version supérieure de ma (l:patterns/spells/sentinels)$(thing)sentinelle/$ Coûte environ deux $(l:items/amethyst)$(item)Poussière d'améthyste/$.", + "2": "Cette $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ plus puissante agit comme une classique que je peux invoquer sans un Sort Supérieur, même si plus visuellement attrayante. Cependant, la portée de mes sorts est étendue à une zone autour de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle Supérieure/$ d'environ 16 blocs. En d'autres termes, peu importe où je suis dans le monde, je peux interagir avec les choses se trouvent autour de ma $(l:patterns/spells/sentinels)$(thing)Sentinelle/$ (et ce malgré les mystérieuses forces du chargement des chunks).", }, weather_manip: { - lightning: "Je commande les cieux ! Ce Sort invoquera la foudre là où je la dirige. Coûte approximativement trois $(l:items/amethyst)$(item)éclats d'améthyste/$.", - summon_rain: "Je contrôle les nuages ! Ce sort invoquera une pluie diluvienne sur le monde. Coûte approximativement une $(l:items/amethyst)$(item)améthyste chargée/$. Ne fait rien si la pluie tombe déjà.", - dispel_rain: "Une contrepartie à l'invocation de pluie. Ce Sort dissipera la pluie tout autour du monde sur lequel je le lance. Coûte approximativement un $(l:items/amethyst)$(item)éclat d'améthyste/$. Ne fait rien si le ciel est déjà dégagé.", + lightning: "Je commande les cieux ! Ce Sort invoquera la foudre là où je la dirige. Coûte approximativement trois $(l:items/amethyst)$(item)Éclats d'améthyste/$.", + summon_rain: "Je contrôle les nuages ! Ce sort invoquera une pluie diluvienne sur le monde. Coûte approximativement une $(l:items/amethyst)$(item)Améthyste chargée/$. Ne fait rien si la pluie tombe déjà.", + dispel_rain: "Une contrepartie à l'invocation de pluie. Ce Sort dissipera la pluie tout autour du monde sur lequel je le lance. Coûte approximativement un $(l:items/amethyst)$(item)Éclat d'améthyste/$. Ne fait rien si le ciel est déjà dégagé.", }, quenching_allays: { - "3": "Ca n'a aucune importance. Ca n'a aucune importance. Ils n'ont aucune importance, seul importe le résultat. Et le voilà.$(br2)Ca doit être si douloureux.$(br2)Dix $(l:items/amethyst)$(item)Poussières d'Améthyste/$, c'est le prix pour réaliser un rituel aussi perverti.", - "4": "Le produit est fragile. Le briser le fera voler en éclats, $(thing)Fortune/$ me permettrait d'augmenter le rendement... Si je souhaite récupérer le bloc lui-même j'aurai besoin de $(thing)Toucher de Soie/$.$(br2)Les éclats qui en résultent valent trois fois plus qu'une $(l:items/amethyst)$(item)Améthyste Chargée/$. Le bloc lui-même équivaut à quatre éclats.", - "1": "ILS SONT DES MORCEAUX DE MÉDIA. Comment ne l'ai-je pas remarqué plus tôt ? Ils sont -- tout comme je suis un amas de chair animé par une bribe de conscience, un Allay est une mine intarissable de Média accrochée à un brin de chair. Ça explique absolument tout -- leur disposition au média, leur réponse à la musique, JE PEUX LE VOIR MANTENANT, COMMMENT personne n'a pu le remarquer avant ?", + "3": "Ca n'a pas importance. Je n'ai pas d'importance. Ils n'ont pas d'importance, la seule chose qui importe c'est le résultat. Et c'est tout.$(br2)Ca doit faire tellement mal.$(br2)Dix $(l:items/amethyst)$(item)Poussières d'améthyste/$, c'est le prix pour réaliser un rituel aussi perverti.", + "4": "Le produit est fragile. Le briser le fera voler en éclats, $(thing)Fortune/$ me permettrait d'augmenter le rendement... Si je souhaite récupérer le bloc lui-même j'aurai besoin de $(thing)Toucher de Soie/$.$(br2)Les éclats qui en résultent valent trois fois plus qu'une $(l:items/amethyst)$(item)Améthyste chargée/$. Le bloc lui-même vaut quatre de ces éclats.", + "1": "ILS SONT DES MORCEAUX DE MÉDIA. Comment ne l'ai-je pas remarqué plus tôt ? Ils sont -- tout comme je suis un amas de chair animé par une bribe de conscience, un Allay est une mine intarissable de Média accrochée à un brin de chair. Ça explique absolument tout -- leur disposition au Média, leur réponse à la musique, JE PEUX LE VOIR MANTENANT, COMMMENT personne n'a pu le remarquer avant ?", + "2": "Et puisqu'il me revient de DROIT de conquérir leurs esprits si particuliers-- leurs psychés si particulières-- c'est tout ce qu'ils sont, un esprit, une psyché, une coda. Quelque chose en eux me parle. Je peux compresser le $(hex)Média/$ avec eux, superposer deux trains de pensée en un seul endroit, physique et cognitif, tout à la fois.$(br2)Sauf comment, le procédé produit du $(hex)Média/$ de lui même. Peut-être-- Peut-être que MON travail, le processus derrière--", + "5": "Ils sont quantiques, on dirait qu'ils se tordent et clignotent sous mes doigts, en leur donnant un guide avec une forme alternative de $(hex)Média/$ ils vont changer de forme, avec un échange de $(hex)Média/$ équivalent.", }, - colorize: "J'ai besoin de tenir un $(l:items/pigments)$(item)Pigment/$ dans mon autre main pour lancer ce sort. Il consommera la teinture et changera de façon permanente la couleur de mon esprit (ou du moins, jusqu'à ce que je réuse de ce sort). Coûte environ une $(l:items/amethyst)$(item)Poussière d'Améthyste/$.", + colorize: "J'ai besoin de tenir un $(l:items/pigments)$(item)Pigment/$ dans mon autre main pour lancer ce sort. Il consommera la teinture et changera de façon permanente la couleur de mon esprit (ou du moins, jusqu'à ce que je réuse de ce sort). Coûte environ une $(l:items/amethyst)$(item)Poussière d'améthyste/$.", akashiclib: { "1": "JE SAIS TELLEMENT DE CHOSES il est simplement LÉGITIME d'avoir un endroit où stocker tout ça. Les informations peuvent être gardées dans des livres mais c'est si... oh... tellement tellement tellement teeeeeellement $(italic)lent/$ de toute écrire à la main et de tout lire avec les yeux. Je veux MIEUX que ça. Donc je vais CRÉER mieux que ça.$(br2)... Mon état empire... sais pas si j'aurai le temps d'écrire tout ce qui envahit mon esprit avant que ça ne s'évanouisse.", "2": "La bibliothèque. Là. Mes schémas.$(br2)De la même façon que les runes sont associées à des actions, je peux associer mes propres runes avec des iotas selon mon bon vouloir. Une $(l:greatwork/akashiclib)$(item)Archive Akashique/$ contrôle la bibliothèque et chaque $(l:greatwork/akashiclib)$(item)Étagère Akashique/$ contient une rune associée à un iota. Tout doit être directement relié, en contact, sur maximum 128 blocs. Une $(l:greatwork/akashiclib)$(item)Ligature Akashique/$ ne fait rien, mais elle compte pour connecter les blocs, étendant la taille de ma bibliothèque.", akashic_record: "Alloué et assigner des runes est simple mais teeellement ennuyant. J'ai des choses plus utiles à faire. J'ai besoin d'un esprit savamment utilisé pour que l'extraction reste fiable.", "3": "L'utilisation de la bibliothèque est simple, les runes sont reliées au travers du bibliothécaire qui la regarde et me renvoie l'iota associé. Deux actions feront l'affaire. $(l:patterns/akashic_patterns)Mes notes sont ici/$.$(br2)Utiliser un $(l:items/scroll)$(item)Parchemin/$ vierge sur une étagère copie sa rune. S'accroupir et utiliser une main vide nettoie les informations de l'étagère.", }, + "fanciful_staves.1": "Ce n'est que normal, alors que je me débarasse de mon ignorance, que je remplace de mes vieux outils, mes Sceptres abîmés par le temps. Mes nouvelles inventions n'ont pas de nouvelles fonctionnalités-- mais elles sont glorieuses, Oh qu'elles sont Glorieuses... Elles s'accordent au rayonnement constant dans les coins de ma vision.", + advanced_math: { + sin: "Prends le Sinus d'un angle en radians, et donne la composante verticale de cet angle tracé sur une unité de cercle. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + cos: "Prends le Cosinus d'un angle en radians, et donne la composante horizontale de cet angle tracé sur une unité de cercle. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + tan: "Prends la Tangente d'un angle en radians, et donne la pente de cet angle tracé sur une unité de cercle. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arcsin: "Prends l'inverse du Sinus d'une valeur avec une valeur absolue inférieure à 1, et donne l'angle pour lequel le Sinus est cette valeur. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arccos: "Prends l'inverse du Cosinus d'une valeur avec une valeur absolue inférieure à 1, et donne l'angle pour lequel le Cosinus est cette valeur. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan: "Prends l'inverse de la Tangeante d'une valeur avec une valeur absolue inférieure à 1, et donne l'angle pour lequel la Tangeante est cette valeur. En relation avec les valeurs $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$ et $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$.", + arctan2: "Prends l'inverse de la Tangente d'une valeur Y et X, donne l'angle entre l'axe X et une ligne depuis l'origine de ce point.", + logarithm: "Retire le Nombre sur la Stack, et prends le logarithme du Nombre suivant en utilisant les autres Nombres comme sa base. En relation avec la valeur $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$.", + }, + create_lava: { + "2": "Il serait recommendable de garder l'existence de ce Sort secrète. Une certaine faction de botanistes est... légèrement chatouilleuse sur le sujet, de ce que j'en ai entendu.$(br2)Eh bien, personne n'a jamais dit que percer les mystères qui gouvernent l'univers serait facile.", + "1": "Invoque un bloc de lave (ou l'équivalent d'un sceau de lave) dans un bloc à la position donnée. Coûte environ une $(l:items/amethyst)$(item)Améthyste chargée/$.", + }, }, "special.hexcasting:": { number: "Reflet Numérique : %s", @@ -1472,7 +1508,7 @@ detonate: "Détonation", shockwave: "Onde de choc", heat_wave: "Déflagration", - wither_wave: "Vague de Wither", + wither_wave: "Vague de Décomposition", flight_zone: "Zone de Vol", kindle: "Brasier", lunge: "Projection", @@ -1563,7 +1599,7 @@ cast: { normal: "Une Action bourdonne", spell: "Boing de Sort", - fail: "Un Méchef crépite", + fail: "Un méchef crépite", hermes: "Hermes vibre", thoth: "Thoth vibre", }, @@ -1577,8 +1613,8 @@ "": "Cliquetis de l'Abaque", shake: "L'Abaque est secoué", }, - "spellcircle.add_pattern": "Le Cercle de Sorts crépite", - "spellcircle.fail": "Le Cercle de Sorts s'éteint", + "spellcircle.add_pattern": "Le Cercle Runique crépite", + "spellcircle.fail": "Le Cercle Runique s'éteint", "scroll.dust": "Le Parchemin est recouvert de poussière", "scroll.scribble": "Le parchemin est griffonné", "lore_fragment.read": "Lecture d'un fragment d'Histoire", @@ -1588,12 +1624,12 @@ entry: { impetus: "Impeti", ancient_cyphers: "Talismans antiques", - whats_a_hex: "Qu'est-ce qu'un Sortilège ?", + whats_a_hex: "Nature des Sortilèges", mishaps: "Méchefs", stack: "La Stack", amethyst: "Améthyste", staff: "Sceptres", - lens: "Lentille de Divination", + lens: "Lentille Divinatoire", thought_knot: "Nœud-Pensée", focus: "Focus", abacus: "Abaque", @@ -1605,7 +1641,7 @@ pigments: "Pigments", edified: "Arbres Ensorcelés", decoration: "Blocs décoratifs", - spellcircles: "Cercles de Sorts", + spellcircles: "Cercles Runiques", akashiclib: "Bibliothèques Akashiques", readers_guide: "Comment lire cette section", basics_pattern: "Runes basiques", @@ -1622,13 +1658,13 @@ advanced_escaping: "Échappement avancé", readwrite: "Lire et Écrire", meta: "Meta-évaluation", - circle_patterns: "Runes de Cercle de Sorts", + circle_patterns: "Runes de Cercle Runique", akashic_patterns: "Runes Akashiques", itempicking: "Travailler avec des objets", basic_spell: "Sorts basiques", blockworks: "Manipulation de blocs", nadirs: "Nadirs", - hexcasting_spell: "Créer des Catalyseurs de Sortilèges", + hexcasting_spell: "Création de Catalyseurs", sentinels: "Sentinelles", flights: "Vol", weather_manip: "Manipulation météorologique", @@ -1643,7 +1679,7 @@ experiment2: "Registre d'entretien avec les Yeux-poudrés", inventory: "Registre de restoration #72", }, - naming: "Les normes de nomenclature pour les Actions", + naming: "Nomenclature", jeweler_hammer: "Marteau de Bijoutier", start_to_see: "QU'AI-JE VU", "101": "Initiation à la Sorcellerie", @@ -1674,7 +1710,7 @@ scry_sight: "Vision Divinatoire", feeble_mind: "Esprit faible", }, - landing: "Je pense avoir découvert une nouvelle discipline des arts ésotériques, qui consiste à tracer d'étranges Runes sur une Grille hexagonale. Ça me fascine. J'ai décidé de commencer à tenir un journal de mes pensées et observations.$(br2)$(l:https://forum.petra-k.at/index.php)Lien du Forum/$", + landing: "Je pense avoir découvert une nouvelle discipline des arts ésotériques, qui consiste à tracer d'étranges runes sur une grille hexagonale. Ça me fascine. J'ai décidé de commencer à tenir un journal de mes pensées et observations.$(br2)$(l:https://forum.petra-k.at/index.php)Lien du Forum/$", "iota.hexcasting:": { "null": { "": "Null", @@ -1730,7 +1766,7 @@ bad_entity: "%s est nécessaire au lieu de %s", bad_brainsweep: "Le %s a rejeté l'esprit de l'Entité", already_brainswept: "Cet esprit a déjà été utilisé", - no_spell_circle: "nécessite un Cercle de Sorts", + no_spell_circle: "nécessite un Cercle Runique", others_name: "A tenté d'envahir l'intimité de l'âme de %s", "others_name.self": "J'ai tenté de divulguer mon Nom Véritable inconsciemment", divide_by_zero: { @@ -1741,7 +1777,7 @@ zero: { "": "zéro", power: "puissance zéro", - vec: "vecteur zéro", + vec: "Vecteur zéro", }, power: "puissance de %s", sin: "sinus de %s", @@ -1754,8 +1790,8 @@ no_akashic_record: "Aucune Archive Akashique à %s", disallowed: "%s a été interdit par les administrateurs du serveur", disallowed_generic: "Cette Rune a été interdite par les administrateurs du serveur", - disallowed_circle: "%s a été interdit dans les Cercles de Sorts par les administrateurs du serveur", - disallowed_circle_generic: "Cette Rune a été interdite dans les Cercles de Sorts par les administrateurs du serveur", + disallowed_circle: "%s a été interdit dans les Cercles Runiques par les administrateurs du serveur", + disallowed_circle_generic: "Cette Rune a été interdite dans les Cercles Runiques par les administrateurs du serveur", invalid_spell_datum_type: "A tenté d'utiliser une valeur d'un type invalide comme une référence de Sort : %s (class %s). C'est un bug dans le mod.", unknown: "a lancé une exception (%s). C'est un bug dans le mod.", stack_size: "A dépassé la taille limite de la Stack", @@ -1821,7 +1857,7 @@ write: "un endroit dans lequel écrire les iotas", readonly: "un endroit qui acceptera de %s", }, - media: "un objet contenant du média", + media: "un objet contenant du Média", media_for_battery: "un objet de Média pur", only_one: "exactement un objet", eraseable: "un item suppressible", @@ -1843,12 +1879,12 @@ }, circles: { no_exit: "le flux de Média à %s n'a pas pu trouver de sortie", - many_exits: "le flux de média à %s a trop de sorties", + many_exits: "le flux de Média à %s a trop de sorties", }, category: { basics: { "": "Pour commencer", - desc: "Les pratiquants de cet art concevraient leurs $(hex)\"Sortilèges\"/$ en dessinant d'étranges Runes dans les airs avec un $(l:items/staff)$(item)Sceptre/$ -- ou créeraient de $(l:items/hexcasting)$(item)puissants objets magiques pour automatiser le processus/$. Comment pourrais-je apprendre à faire de même ?", + desc: "Les pratiquants de cet art concevraient leurs $(hex)\"Sortilèges\"/$ en dessinant d'étranges Runes dans les airs avec un $(l:items/staff)$(item)Sceptre/$ -- ou créeraient de $(l:items/hexcasting)$(item)puissants objets magiques/$ pour automatiser le processus. Comment pourrais-je apprendre à faire de même ?", }, greatwork: { "": "Le Grand Ouvrage", @@ -1868,7 +1904,7 @@ }, casting: { "": "Sorcellerie", - desc: "Je commence à comprendre comment les vieux maîtres concevaient leurs $(#b38ef3)Sortilèges/$ ! C'est un peu complexe, mais je suis sûr de pouvoir m'en sortir. Voyons voir...", + desc: "Je commence à comprendre comment les vieux maîtres concevaient leurs $(hex)Sortilèges/$ ! C'est un peu complexe, mais je suis sûr de pouvoir m'en sortir. Voyons voir...", }, items: { "": "Objets", @@ -1900,7 +1936,7 @@ brainsweep: { "fail.badtype": "%s n'est pas un monstre", "fail.already": "%s est déjà vide", - "": "Psycho-transfusé %s", + "": "Psyché-transfusée %s", }, }, "matcher.hexcasting.pattern": { From 5d83d8d5111ef2fadb296d2f19030f465a6ae124 Mon Sep 17 00:00:00 2001 From: Hexxy Weblate Date: Wed, 26 Aug 2026 01:17:23 +0000 Subject: [PATCH 44/50] chore(l10n): update Polish translation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation chore(l10n): update Polish translation Co-authored-by: Hexxy Weblate Co-authored-by: ManicTv Co-authored-by: Stanisław Budny Co-authored-by: [object Object] Language: Polish Progress: 61.1% (847 of 1386 strings) Progress: 62.4% (865 of 1386 strings) Progress: 63.0% (874 of 1386 strings) Progress: 63.1% (875 of 1386 strings) Progress: 63.2% (876 of 1386 strings) Translate-URL: https://weblate.hexxy.media/projects/hexcasting/1-20/1-20-common/pl/ Translation: Hex Casting/Common --- .../hexcasting/lang/pl_pl.flatten.json5 | 74 +++++++++++++++++-- 1 file changed, 68 insertions(+), 6 deletions(-) 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 15508db4f1..03f22b0df2 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 @@ -555,7 +555,7 @@ action: { "hexcasting:": { "const/": { - "null": "Zerowe Odbicie", + "null": "Odbicie Nicości", "true": "Odbicie Prawdy", "false": "Odbicie Fałszu", "vec/": { @@ -1049,7 +1049,7 @@ hexcasting: "Czarujące Przedmioty", ancient_cyphers: "Starożytne Cacka", phials: "Fiolki Przepływu", - potions: "Mikstury do Czarowania", + potions: "Mikstury Czarownicze", pigments: "Pigmenty", edified: "Oświecone Drzewa", decoration: "Bloki Ozdobne", @@ -1082,8 +1082,8 @@ basic_spell: "Podstawowe Zaklęcia", blockworks: "Manipulacja Bloków", nadirs: "Nadiry", - meta: "Meta-Analiza", - hexcasting_spell: "Tworzenie Czarujących Przedmiotów", + meta: "Meta-Ewaluacja", + hexcasting_spell: "Tworzenie Przedmiotów Czarowniczych", sentinels: "Wartownicy", flights: "Lot", weather_manip: "Manipulacja Pogody", @@ -1107,8 +1107,8 @@ page: { creative_items: { "1": "Udało mi się wynaleźć parę teoretycznych przedmiotów, które da się skonstruować wyłącznie przez $(italic)kreatywne/$ sposoby.", - creative_unlocker: "$(#74b3f2)Kostka Przepływu/$ to prawie nieograniczone źródło mocy, którym mogę się posilić, by mieć nieskończony _przepływ, dla jakichkolwiek_ czarów, jakie sobie wymarzę. Jako dodatkowa zaleta, wygląda całkiem smacznie. Być może zjedzenie jej da mi więcej wiedzy o świecie, choć to byłoby wkraczanie na terytorium spojlerów...", - "2": "Dodatkowo, zmiana nazwy $(#74b3f2)Kostki Przepływu/$ na kowadle powinna pozwolić mi na testowanie i lepsze zrozumienie moich _Czarów. Jeżeli ktoś z Kreatywną kontrolą nad światem napotkał moje notatki, polecam wyłączyć ją przed próbowaniem następujących rzeczy.", + creative_unlocker: "$(#74b3f2)Kostka Przepływu/$ to prawie nieograniczone źródło mocy, który mogę wykorzystać jako źródło nieskończonego _przepływu, dla jakichkolwiek_ czarów, jakie sobie wymarzę. Jako dodatkowa zaleta, wygląda całkiem smacznie. Być może zjedzenie jej da mi więcej wiedzy o świecie, choć to byłoby wkraczanie na terytorium spojlerów...", + "2": "Dodatkowo, zmiana nazwy $(#74b3f2)Kostki Przepływu/$ na kowadle powinna pozwolić mi na testowanie i lepsze zrozumienie moich _Czarów. Jeżeli ktoś z Kreatywną kontrolą nad światem napotkał moje notatki, polecam wyłączyć ją przed próbowaniem tej metody.", debug_media: { title: "debug media", desc: "Zmieniając nazwę $(#74b3f2)Kostki Przepływu/$ na 'debug media', otrzymam informacje zwrotne w okienku czatu na temat ilości zużytego przepływu.", @@ -1119,6 +1119,68 @@ "2": "$(media)Przepływ/$ może wpływać na inne formy przepływu -- siła i typ ego wpływu mogą być zmienione przez tkanie $(media)przepływu/$ w glify.$(p)Uczeni tej sztuki używali $(media)przepływu/$ skupionego w formę grudki na końcu kija: machając nim w powietrzu w precyzyjnych sekwencjach, byli w stanie wpłynąć na wystarczająco $(media)przepływu/$ z wystarczającą precyzją, by wpłynąć na sam świat, co przyjmowało formę $(hex)czaru/$.", "3": "Niestety, nawet w pełni świadoma istota (jak ja... chyba) może wyprodukować tylko nieznaczne ilości $(media)przepływu/$. Używanie samej siły woli do czarowania byłoby więc raczej niepraktyczne.$(br2) Według legend głęboko pod ziemią można znaleźć złoża, w których $(media)przepływ/$ skupia się i powoli rośnie w formie kryształu.$(p)Tylko jak je znaleźć...", }, + geodes: { + "1": "Eureka! Podczas kopania, udało mi się natrafić na ogromną geodę, która wręcz wibrowała od energii w niej skupionej - energii naciskającej na mój umysł, zalewającej moje myśli. A teraz, trzymam krystaliczny odłamek tej właśnie energii w dłoni. Fakt istnienia tej geody $(italic)potwierdza/$ starożytne legendy, opowiadające o miejscach, w których przepływ akumuluje i krystalizuje się bez problemu. Te $(l:items/amethyst)$(item)kryształy ametystu/$ muszą być $(l:items/amethyst)$(thing)fizyczną manifestacją przepływu/$.", + "2": "Wygląda na to, że oprócz zwyczajnych $(l:items/amethyst)$(item)odłamków ametystów/$, z ametystowych kryształów mogą także wypaść $(l:items/amethyst)$(item)ametystowy pył/$ oraz $(l:items/amethyst)$(item)naładowany ametyst/$. Mam większą szansę na znalezienie $(l:items/amethyst)$(item)naładowanego ametystu/$, jeśli użyję kilofu zaklętego na Fortunę.", + "3": "Przyglądając się pięknie tego kryształu, czuję moje synapsy wystrzeliwujące chaotycznie, formując połączenia mózgowe. Czuję się, jakby sam Przepływ płynął przez mój układ nerwowy, przyśpieszał moje myśli, zaostrzał moje zmysły... Jakież to wspaniałe uczucie. $(br2)W końcu, moje badania sztuk tajemnych zaczynają nabierać sensu!$(p)Teraz gdy wiem na co patrzę, muszę jeszcze raz przejrzeć te stare legendy.", + }, + couldnt_cast: { + "2": "Bariera powstrzymująca mnie przed rzuceniem tego zaklęcia została lekko osłabiona od siły, na którą wystawiłem to zaklęcie; lecz mimo moich największych starań, najwyższej jakości ametystu, najbardziej precyzyjnych glifów -- dalej $(italic)nie mogę/$ przebić tej bariery. Jest to niemożliwie frustrujące. Czy tak kończą się moje badania? Przeklęte przez bark kompetencji, odmawiający mi mojej prawowitej potęgi?$(br2)Muszę się uspokoić i przemyśleć wszystko co się wydarzyło. W końcu, nawet porażka wprowadza nowe dane do wzięcia pod uwagę.", + "3": "Po dokładniejszym przemyśleniu informacji, wydaje mi się, że ta porażka w pewien zmieniła moją relację z przepływem i splotem.$(p)Wygląda na to, że zamiast $(l:items/amethyst)$(item)ametystu/$, jestem teraz w stanie użyć mojej własnej energii życiowej -- tak jak pisano w niektórych legendach.$(p)Nie mam pojęcia dlaczego dopiero teraz. Ciężar prawdy i wiedzy był na moich ramionach cały czas, i teraz to widzę. Noszę go.$(br2)Na szczęście, mam jako taką świadomość własnych ograniczeń -- mam do dyspozycji mniej-więcej dwa kawałki $(l:items/amethyst)$(item)Naładowanego Ametystu/$ przy pełnym zdrowiu.", + "4": "Przechodzą mnie ciarki myśląc o tym -- do tej pory, mój umysł nie ucierpiał zbyt bardzo od moich badań. Ale prawdą jest, że jestem tylko połową swego rodzaju łącza.$(p)Jego druga strona, jest oddzielona pewną granicą -- granicą, którą powoli osłabiam, drążąc coraz głębiej. Za tą granicą leży miejsce, gdzie proste czyny i czary prowadzą do wiecznej chwały.$(p)Czy to grzech, chcieć tego dla siebie?", + "1": "Argh! Czemu natura nie pozwala mi rzucić tego zaklęcia?!$(br2)Sam zwój szumi autentycznością. Mogę $(italic)wyczuć/$, jak buczy mi pomiędzy palcami -- glif jest prawdziwy, a przynajmniej tak bardzo, jak może być. To zaklęcie jest $(italic)tuż przede mną/$.$(p)A jednak chowa się, jak gdyby za jakąś cieniutką błoną. Zostało wezwane-- spróbowało się zjawić, lecz $(italic)NIE MOGŁO/$.", + }, + start_to_see: { + "1": "Zwoje nie kłamały. Natura wzięła to, co było jej należne.", + "2": "To... To była...$(p)...to była jedna z $(italic)najgorszych/$ rzeczy jakie $(italic)kiedykolwiek/$ mi się przydarzyły. Natura spojrzała na mój plan, a w zamian dała mi uśmiech i uczucie pękania -- fragment mnie, odłamek mojej psychiki pękający i odpadający od reszty mojego umysłu, jak kryształ ametystu od geody.$(p)Samo przetrwanie czegoś takiego jest cudem, a co dopiero zachowując wystarczającą ilość świadomości, żeby dalej pisać-- najrozsądniej byłoby uznać tą sprawę za zamkniętą, dopracować moje rachunki zanim rzucę jakiekolwiek czary i NIGDY nie popełniać znowu takiego błędu.", + "3": "...Jednakże.$(br2) Na najprzelotniejsze mgnienie oka, ta część mnie... $(italic)ujrzała/$... $(l:greatwork/the_work)$(thing)coś/$. Miejsce-- a być może projekt? (Różnice między takimi określeniami nie wydawały się zbyt ważne w obliczu... tego.)$(p)A ta... ta membrana, bariera, czy granica oddzielająca mnie od domeny czystej myśli, przepływu, światła, może energii. Pamiętam-- wizję, myśl, wspomnienie, odczucie-- tej granicy, iskrzącej się przy jej końcówkach, tylko leciutko. $(p)W mojej głowie było już tylko jedno: $(italic)przejście./$", + "4": "Nie mogę. $(italic)Wiem/$, że nie mogę. To zbyt groźne. Siła, potrzebna by... Do tego trzebaby znaleźć się na włos od samej Śmierci, i to $(italic)jednym ciosem/$.$(br2)Ale jestem już. Tak bardzo. $(italic)Blisko/$.$(p)$(italic)To/$ jest kulminacja mojej sztuki. Moje Magnum Opus. Tak długo pożądane $(#54398a)Wtajemniczenie/$. $(br2)Żądam więcej. Muszę je znowu ujrzeć. Na $(italic)pewno/$ je znowu ujrzę.$(p)Czym jest mój śmiertelny umysł w obliczu nieśmiertelnej chwały?", + }, + casting: { + overview: { + "1": "Myślę, że pierwsze kroki są zawsze najważniejsze. Tak więc, mam tu proste wzory składające się na $(hex)czar/$, który wywoła pomniejszą eksplozję w miejscu, na które skupiam swój wzrok. Uważna analiza zasady działania tego $(hex)czaru/$ może być całkiem oświecająca.", + }, + "patterns&actions": { + "1": "$(thing)Glify/$ są nićmi rozpiętymi na splocie Przepływu. Wydaje mi się, że sześciokątna symetria glifów ma związek ze strukturą ametystu.$(br2)$(thing)Akcje/$, są tym, co glify $(italic)robią/$.", + "2": "Różnica między glifami i działaniami, jest podobna do różnicy między $(italic)słowami/$, a ich $(italic)znaczeniami/$. Każdy zlepek liter tworzy jakieś słowo, ale większość z nich (jak np. \"auicęt\") nic nie znaczy. Analogicznie, byle jaki gryzmoł na splocie, teoretycznie jest glifem, ale nie ma żadnej funkcji, ani zastosowania.", + "3": "Działania są nieco jak komendy wydawane ogromnemu systemowi, zarządzającemu naszą rzeczywistością (czasami nazywanym \"Naturą\" w starożytnych tekstach). W większości zaliczają się do jednej z kilku grup:$(li)Zbierające dane na temat otaczającego mnie świata, np. znajdowanie pozycji jakiegoś bytu.$(li)Manipulujące zdobytymi danymi, np. obliczenie dystansu między mną, a pozycją bytu.$(li)Uzyskujące jakiś efekt, wpływający na świat, np. przyzwanie gromu, lub wywołanie eksplozji.$(br)Ta ostatnia grupa jest nazywana \"zaklęciami\" i zazwyczaj najbardziej rzuca się w oczy osobom niedoświadczonym.", + "4": "Czar, jest więc sekwencją poprawnych glifów, przedstawionych Naturze po kolei. Natura interpretuje każdy z tych glifów jeden po drugim, po czym wykonuje moje polecenia. (Lub to, co uznaje za moje polecenia.)", + "5": "O ile niektóre działania mogą zostać wykonane bez większego trudu, niektóre wymagają zapłaty, w formie skondensowanego przepływu. Wydaje mi się, że ta skoncentrowana energia psychiczna zostaje wykorzystana, aby przekupić Naturę, by wykonała moje polecenia. Większość zaklęć wymaga takiej zapłaty, ale tyczy się to także kilku działań z innych grup.$(br2)Koszty działań powinny znaleźć się na stronie danego glifu.", + }, + grid: { + "1": "Główną metodą przekazywania moich glifów Naturze jest mój zaufany $(l:items/staff)$(item)Kostur/$. Wciśnięcie $(thing)$(k:use)/$ z nim w ręce wywoła pojawienie się przede mną magicznego splotu, składającego się z punktów, układających się w sześciokątne formacje. Wtedy mogę kliknąć jeden z nich, przeciągnąć kursor do innego, i puścić, by skończyć tkać ten glif.$(br2)Gdy już utkam dany glif, jego efekt zostaje wykonany (o tym więcej w następnym rozdziale).", + "2": "Kliknięcie klawisza $(thing)$(k:escape)/$ zapisuje i zamyka splot; przy następnym użyciu kostura, wszystkie moje glify i joty dalej tam będą.$(br2)Gdy zechcę zresetować stan mojego splotu, wystarczy że kucnę przy jego otwieraniu.", + }, + iotas: { + "1": "\"Rzeczownikami\" w języku Natury są $(thing)joty/$. Na najbardziej podstawowym poziomie, czarowanie to sztuka panowania nad jotami.$(br2)Joty występują w licznych rodzajach:$(li)Liczby (w niektórych mitach zwane \"dwojakami\").$(li)Wektory, czyli zestawy trzech liczb używane do opisu pozycji, ruchu, czy kierunków.$(li)Joty logiczne, często też określane jako joty logiki, reprezentują abstrakcyjne idee Prawdy i Fałszu.$(li)Byty, takie jak ja, krowy, a nawet wagoniki.", + "2": "$(li)Wpływy, joty reprezentujące różne abstrakcyjne idee, jak brak danych ($(thing)Null/$), lub totalny brak sensu ($(thing)Supeł/$).$(li)Glify same w sobie, potrzebne do tworzenia przedmiotów czarowniczych i iście zadziwiających osiągnięć, jak $(italic)czary rzucające inne czary/$.$(li)Spisy wielu innych jot, niezależnie od typu, zebranych w pojedynczą jotę.", + "3": "Na ogół, muszę dostarczyć odpowiednie joty dla działań. Na przykład, zaklęcie $(l:patterns/spells/basic#hexcasting:explode)$(action)Eksplozja/$ wymaga joty liczby opisującej jego siłę, oraz jotę wektora opisującego jej lokalizację.$(br2)Za drugi przykład wezmę $(l:patterns/basic#hexcasting:get_pos)$(action)Odbicie Kompasu/$. Ono z kolei przyjmuje jotę bytu i przemienia ją w jotę wektora, opisującego pozycję tego bytu w przestrzeni.", + }, + }, + "101": { + "1": "Tkanie glifów jest całkiem ciężkie-- nie dziwię się, że ta technika zaginęła na tak długo w mrokach dziejów! Muszę przyjrzeć się uważniej moim notatkom.$(br2)By zacząć $(hex)czarować/$ muszę wcisnąć $(k:use) trzymając $(l:items/staff)$(item)Kostur/$-- wywoła to pojawienie się przede mną splotu, złożonego z ułożonych w sześciokąty punktów. Wtedy wystarczy, że przeciągnę kursorem od kropki do kropki, by tkać w splocie glify z $(media)przepływu/$; ukończenie glifu wykona odpowiadające mu działanie (o tym więcej napiszę później).", + "2": "Kiedy utkam wystarczająco glifów, by rzucić zaklęcie, splot zanika, gdyż $(media)przepływ/$ dla niego przeznaczony znajduje ujście. Kucanie podczas używania mojego kostura również go wyczyści.$(br2)To jak działają glify? W skrócie:$(li)$(italic)Glify/$ wykonują...$(li)$(italic)Działania/$, które wpływają na...$(li)$(l:casting/stack)$(italic)Stos/$, na który składają się...$(li)$(italic)Joty/$, czyli jednostki informacji.", + "3": "Po pierwsze, $(thing)glify/$. Są niezbędne, gdyż to właśnie nimi manipuluję otaczający mnie $(media)przepływ/$. Konkretne glify wywołują $(thing)działania/$ po ich utkaniu. To właśnie działania robią całe $(italic)magiowanie/$; Wszystkie glify wpływają na $(media)przepływ/$ na swój sposób, ale kiedy ten wpływ okazuje się na jakiś sposób przydatny, nazywamy to działaniem.$(br2)$(media)Przepływ/$ może być kapryśny: jeśli utkam niepoprawny glif, wyjdzie mi gdzieś na moim stosie $(thing)supeł/$ (czytaj dalej...)", + "4.header": "Przykład", + "4": "Co ciekawe, wygląda na to, że $(italic)orientacja/$ glifu nie ma najmniejszego znaczenia. Przykładowo, oba te glify wykonają działanie zwane $(l:patterns/basics#hexcasting:get_caster)$(action)Odbiciem Umysłu/.", + "5": "Rzucanie $(hex)czaru/$ polega na tkaniu po kolei (poprawnych) działań. Każde działanie może wykonać jeden z następujących efektów:$(li)Zebrać jakąś informację o otoczeniu, pozostawiając ją na wierzchu stosu;$(li)zmodyfikować w jakiś sposób zebrane informacje (np. pomnożyć dwie liczby); lub$(li)wywołać jakiś magiczny efekt, jak przyzwanie gromu, czy wybuchu. (Tę kategorię działań nazywamy \"zaklęciami\".)$(p)Gdy zaczynam $(hex)czarować/$, powstaje pusty stos. Działania wpływają na niego od wierzchu.", + "6": "Przykładowo, $(l:patterns/basics#hexcasting:get_caster)$(action)Odbicie Umysłu/$ utworzy jotę odwołującą się do $(italic)mnie/$, osoby czarującej, i położy ją na wierzchu stosu. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)Oczyszczenie Kompasu/$ przyjrzy się jocie na samym wierzchu stosu, i jeśli odwołuje się ona do bytu, przetransformuje ją w jotę opisującą pozycję tego bytu.$(br2)Tak więc, po utkaniu tych glifów w tej kolejności, na moim stosie znajdzie się jota opisująca moją lokalizację.", + "7": "$(thing)Joty/$ mogą reprezentować takie rzeczy, jak ja, czy moja pozycja, ale istnieje też wiele innych typów. Oto ich pełna lista:$(li)Liczby (w niektórych mitach nazywane \"dwojakami\");$(li)Wektory, czyli zestawy trzech liczb, stosowane do opisywania pozycji, ruchu, lub kierunku w przestrzeni;$(li)Joty logiczne, często nazywane też jotami logiki, reprezentujące abstrakcyjne koncepty Prawdy i Fałszu;", + "8": "$(li)Byty, pokroju mnie, krów, czy wagoników;$(li)Wpływy, czyli joty reprezentujące różne abstrakcyjne idee, jak brak informacji ($(thing)Null/$), lub totalny bezsens ($()Supeł/$);$(li)Glify same w sobie, wymagane do tworzenia przedmiotów czarowniczych i osiągania iście zadziwiających wyczynów, jak $(italic)czary potrafiące rzucać inne czary/$;$(li)Spisy wielu jot zebranych w pojedynczą jotę.", + "9": "Co raczej oczywiste, nie ma nic za darmo. Wszystkie zaklęcia i niektóre inne działania wymagają $(media)przepływu/$, jako zapłaty.$(br2)Z tego co udało mi się zrozumieć, $(hex)Czar/$ jest trochę jak plan działania, przedstawiony Naturze-- w tym porównaniu, $()przepływ/$ służy jako argumenty go popierające, by Natura zgodziła się go wykonać.", + "10": "Odkładając to na bok, wygląda na to, że nikt przede mną nie zadał sobie trudu, by ustalić dokładnie $(italic)ile/$ jest wart dany kawałek $(l:items/amethyst)$(item)ametystu/$. Jeśli dobrze rozumiem moje eksperymenty, pojedynczy $(l:items/amethyst)$(item)Odłamek Ametystu/$ jest wart tyle, co pięć typowych kupek $(l:items/amethyst)$(item)Ametystowego Pyłu/$. Z kolei jeden $(l:items/amethyst)$(item)Naładowany Ametyst/$ jest ich wart już około dziesięć.$(br2)O dziwo wygląda na to, że to jedyne formy $(l:items/amethyst)$(item)ametystu/$ nadająca się do rzucania $(hex)czarów/$. Podejrzewam, że jego całe bloki, czy skupiska są zbyt stabilne, by je tak łatwo rozpruć w $(media)przepływ/$.", + "11": "Warto też wziąć pod uwagę, że każde działanie pobiera odpowiednią zapłatę natychmiastowo, nie wszystkie naraz, gdy czar się skończy. Na dodatek, działania zawsze zużywają całe przedmioty-- nawet takie, wymagające tylko równowartości jednej jednostki $(l:items/amethyst)$(item)Ametystowego Pyłu/$ zużyją cały $(l:items/amethyst)$(item)Naładowany Ametyst/$, jeśli to jedyna forma przepływu obecna w moim ekwipunku.$(br2)Z tego powodu, zawsze warto przygotować też trochę pyłu przed czarowaniem-- kto nie marnuje, ten nie żałuje...", + "12": "Zawsze muszę się też upewnić, że mam przy sobie wystarczająco ametystu-- według niektórych tekstów źródłowych, Natura z ochotą weźmie za zapłatę mój umysł, jeśli nie dam jej nic innego. Opisują to jako wrażenie paskudne, a jednocześnie dziwnie ekstatyczne, \"[...] niczym ubogie rozpłynięcie się własnej istoty w czyste światło i energię...\" Nie dziwię się, że wszyscy dawni mistrzowie tej sztuki postradali zmysły. Nie sądzę, żeby palenie odłamków własnego umysłu dla potęgi świadczyło o jakoś szczególnie stabilnym zdrowiu psychicznym.", + "13": "Coś musiało się przez lata jednak zmienić. Pomimo wszystkich moich eksperymentów, nigdy nie udało mi się odtworzyć tej techniki; gdy kończy mi się $(media)przepływ/$, zaklęcie zwyczajnie wygaśnie, jakby jakaś bariera powstrzymywała je, przed zranieniem mnie. $(br2)Może i ciekawie byłoby kiedyś dotrzeć do sedna tej tajemnicy, ale jak na razie przynajmniej się nie zranię.", + "14": "Mam tu też całkiem zabawną ciekawostkę, na temat tego całego wariowania magów. Można ją potraktować trochę jak lekką i pełną humoru przypowieść, raczej nie kanoniczną dla mojego świata.$(br2)$(italic)Uwaga: zawiera trochę body horroru i sugestywnych elementów./$", + "14.link_text": "Goblin Punch", + "15": "Na koniec, efekty zaklęć mają swój maksymalny zasięg, wynosi on około 32 bloki ode mnie. Próba wpłynięcia na cokolwiek poza tym zasięgiem zakończy się niepowodzeniem.$(br2)Mimo to, jeżeli posiadam jotę jakiegoś gracza, mogę wpływać na niego bezpośrednio, niezależnie od tego, gdzie jestem. Dotyczy to wyłącznie wpływania bezpośrednio na samego gracza, samo posiadanie jego joty nie rozszerza mojego zasięgu do jego otoczenia.$(br2)Muszę okropnie uważać z rozdawaniem komukolwiek mojej joty. O ile przyjaźni mi czarownicy mogliby mi z nią wielce pomóc, aż mnie ciarki przechodzą na myśl co mógłby z nią zrobić ktoś o nikczemnych intencjach.", + }, + whats_a_hex: { + "1": "Teoretycznie, $(hex)Czar/$ działa dokładnie tak, jak jest to opisane w $(l:casting/101)Czarowaniu 101/$: tkanie ciągu glifów, w celu osiągnięcia jakiegoś efektu z pomocą zaklęcia, może dwóch.$(br2)Taki pogląd na $(hex)Czary/$ działa przy czarowaniu spontanicznym, ale jeśli chcę pozostawić moje dzieła dla potomnych (lub po prostu dla przyszłej wersji siebie), potrzebuję czegoś bardziej konkretnego.", + "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ć.", + }, }, }, "advancement.hexcasting:": { From b8fadc82229246b0f4e634c6a8f83b2e33a5dc5e Mon Sep 17 00:00:00 2001 From: DetermiedMech1 Date: Wed, 26 Aug 2026 01:50:22 +0000 Subject: [PATCH 45/50] added zero vector mention as per issue #1258 (#1273) I didn't know whether i should also change the other languages, so i just changed en_us fixes #1258 --------- Co-authored-by: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> --- CHANGELOG.md | 1 + .../main/resources/assets/hexcasting/lang/en_us.flatten.json5 | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 25aa40da87..43ea3b412f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -65,6 +65,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](https://github.com/FallingColors/HexMod/pull/1119)) @IridescentVoid - Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](https://github.com/FallingColors/HexMod/pull/1115)) @IridescentVoid - Fixed Break Block being unable to break cobwebs on Fabric ([#1218](https://github.com/FallingColors/HexMod/pull/1218)) @Robotgiggle +- Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](https://github.com/FallingColors/HexMod/pull/1273)) @DetermiedMech1 - Fixed the command to list all per-world patterns not working ([#1277](https://github.com/FallingColors/HexMod/pull/1277)) @Olfi01 ### Internal diff --git a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 index c361c595e5..372525c190 100644 --- a/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 +++ b/Common/src/main/resources/assets/hexcasting/lang/en_us.flatten.json5 @@ -1932,7 +1932,7 @@ }, logic: { - bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(thing)Null/$, False, and the empty list become False; everything else becomes True.", + bool_coerce: "Convert an argument to a boolean. The number $(thing)0/$, $(thing)Null/$, False, the vector (0, 0, 0), and the empty list become False; everything else becomes True.", bool_to_number: "Convert a boolean to a number; True becomes $(thing)1/$, and False becomes $(thing)0/$.", not: "If the argument is True, return False; if it is False, return True.", or: "Returns True if at least one of the arguments are True; otherwise returns False.", From a5717cb5fdd6dff916ed3c5f5c3af0808b4cc3e5 Mon Sep 17 00:00:00 2001 From: Seoa Yoon Date: Wed, 26 Aug 2026 03:10:59 +0000 Subject: [PATCH 46/50] Add ko_kr (#1187) Co-authored-by: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> --- CHANGELOG.md | 1 + .../hexcasting/lang/ko_kr.flatten.json5 | 2275 +++++++++++++++++ .../assets/farmersdelight/lang/ko_kr.json | 3 + .../hexcasting/lang/ko_kr.flatten.json5 | 48 + 4 files changed, 2327 insertions(+) create mode 100644 Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 create mode 100644 doc/resources/assets/farmersdelight/lang/ko_kr.json create mode 100644 doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 diff --git a/CHANGELOG.md b/CHANGELOG.md index 43ea3b412f..9f9e53eaf9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Added Contemplation for escaping without the exponential growth of Consideration ([#1102](https://github.com/FallingColors/HexMod/pull/1102)) @IridescentVoid - Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](https://github.com/FallingColors/HexMod/pull/1103)) @Robotgiggle - Added Media Reflection for checking media available to the cast ([#1235](https://github.com/FallingColors/HexMod/pull/1235)) @IridescentVoid +- Added ko_kr translations ([#1187](https://github.com/FallingColors/HexMod/pull/1187)) @Bananamilk452 ### Changed diff --git a/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 b/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 new file mode 100644 index 0000000000..71596ce055 --- /dev/null +++ b/Common/src/main/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -0,0 +1,2275 @@ +// A work in progress +{ + "item.hexcasting": { + book: "헥스 수첩", + + staff: { + oak: "참나무 지팡이", + spruce: "가문비나무 지팡이", + birch: "자작나무 지팡이", + jungle: "정글나무 지팡이", + acacia: "아카시아나무 지팡이", + dark_oak: "짙은 참나무 지팡이", + crimson: "진홍빛 지팡이", + warped: "뒤틀린 지팡이", + mangrove: "맹그로브나무 지팡이", + cherry: "벚나무 지팡이", + bamboo: "대나무 지팡이", + edified: "교화된 지팡이", + quenched: "진정된 파편 지팡이", + mindsplice: "정신접합 지팡이", + }, + + amethyst_dust: "자수정 가루", + charged_amethyst: "충전된 자수정", + quenched_allay_shard: "진정된 알레이의 파편", + + scroll_small: { + "": "작은 두루마리", + of: "이 %s 아이템은 어떻게 얻은 걸까", + empty: "빈 작은 두루마리", + }, + + scroll_medium: { + "": "중간 두루마리", + of: "이 %s 아이템은 어떻게 얻은 걸까", + empty: "빈 중간 두루마리", + }, + + scroll: { + "": "큰 두루마리", + of: "고대의 %s 두루마리", + empty: "빈 큰 두루마리", + }, + + focus: { + "": "초점구", + sealed: "봉인된 초점구", + }, + + ancient_cypher: { + "": "고대 사이퍼", + preset: "고대 사이퍼: %s", + }, + + thought_knot: "생각 매듭", + spellbook: "마도서", + cypher: "사이퍼", + trinket: "장신구", + artifact: "유물", + battery: "미디어 약병", + lens: "염시 렌즈", + abacus: "주판", + jeweler_hammer: "보석 세공 망치", + sub_sandwich: "잠수 샌드위치", + + dye_colorizer_: { + white: "흰색 안료", + orange: "주황색 안료", + magenta: "자홍색 안료", + light_blue: "하늘색 안료", + yellow: "노란색 안료", + lime: "연두색 안료", + pink: "분홍색 안료", + gray: "회색 안료", + light_gray: "밝은 회색 안료", + cyan: "청록색 안료", + purple: "보라색 안료", + blue: "파란색 안료", + brown: "갈색 안료", + green: "초록색 안료", + red: "빨간색 안료", + black: "검은색 안료", + }, + + pride_colorizer_: { + agender: "에이젠더 안료", + aroace: "아로에이스 안료", + aromantic: "아로맨틱 안료", + asexual: "무성애 안료", + bisexual: "양성애 안료", + demiboy: "데미보이 안료", + demigirl: "데미걸 안료", + gay: "게이 안료", + genderfluid: "젠더플루이드 안료", + genderqueer: "젠더퀴어 안료", + intersex: "인터섹스 안료", + lesbian: "레즈비언 안료", + nonbinary: "논바이너리 안료", + pansexual: "팬섹슈얼 안료", + plural: "플루럴 안료", + transgender: "트랜스젠더 안료", + }, + + uuid_colorizer: "영혼빛 안료", + default_colorizer: "공백 안료", + ancient_colorizer: "고대 안료", + + creative_unlocker: { + "": "미디어 큐브", + for_emphasis: "무한한 미디어", + tooltip: "먹으면 모든 %s 지식을 해금합니다.", + mod_name: "Hexcasting", + }, + + lore_fragment: { + "": "전승 조각", + all: "이 세계에서 찾을 수 있는 전승은 모두 찾은 듯하다.", + }, + }, + + "entity.hexcasting": { + wall_scroll: "걸린 두루마리", + }, + + "block.hexcasting": { + conjured_light: "소환된 빛", + conjured_block: "소환된 블록", + + directrix: { + empty: "빈 지향석", + redstone: "석공의 지향석", + boolean: "양치기의 지향석", + }, + + impetus: { + empty: "빈 원동석", + rightclick: "도구 대장장이의 원동석", + look: "화살 제조인의 원동석", + redstone: "성직자의 원동석", + }, + + akashic_: { + record: "아카식 레코드", + bookshelf: "아카식 책장", + connector: "아카식 연결구", + }, + + slate: { + "": "석판", + blank: "빈 석판", + written: "문양 석판", + }, + + slate_: { + block: "석판 블록", + tiles: "석판 타일", + bricks: "석판 벽돌", + bricks_small: "작은 석판 벽돌", + pillar: "석판 기둥", + }, + + amethyst_: { + dust_block: "자수정 가루 블록", + tiles: "자수정 타일", + bricks: "자수정 벽돌", + bricks_small: "작은 자수정 벽돌", + pillar: "자수정 기둥", + }, + + slate_amethyst_: { + tiles: "석판과 자수정 타일", + bricks: "석판과 자수정 벽돌", + bricks_small: "작은 석판과 자수정 벽돌", + pillar: "석판과 자수정 기둥", + }, + + scroll_paper: "두루마리 종이", + ancient_scroll_paper: "고대 두루마리 종이", + scroll_paper_lantern: "종이 등불", + ancient_scroll_paper_lantern: "고대 종이 등불", + amethyst_sconce: "자수정 벽등", + + edified_: { + log: "교화된 원목", + log_amethyst: "자수정 교화 원목", + log_aventurine: "어벤추린 교화 원목", + log_citrine: "시트린 교화 원목", + log_purple: "보라색 교화 원목", + wood: "교화된 나무", + planks: "교화된 판자", + panel: "교화된 판", + tile: "교화된 타일", + door: "교화된 문", + trapdoor: "교화된 다락문", + stairs: "교화된 계단", + slab: "교화된 반 블록", + button: "교화된 버튼", + pressure_plate: "교화된 압력판", + fence: "교화된 울타리", + fence_gate: "교화된 울타리 문", + }, + + stripped_edified_log: "껍질 벗긴 교화 원목", + stripped_edified_wood: "껍질 벗긴 교화 나무", + + amethyst_edified_leaves: "자수정 교화 잎", + aventurine_edified_leaves: "어벤추린 교화 잎", + citrine_edified_leaves: "시트린 교화 잎", + + quenched_allay: "진정된 알레이", + + quenched_allay_: { + tiles: "진정된 알레이 타일", + bricks: "진정된 알레이 벽돌", + bricks_small: "작은 진정된 알레이 벽돌", + }, + }, + + "effect.hexcasting": { + enlarge_grid: "명료", + shrink_grid: "혼탁", + }, + + "item.minecraft.potion.effect": { + enlarge_grid: "명료의 물약", + enlarge_grid_long: "명료의 물약", + enlarge_grid_strong: "명료의 물약", + shrink_grid: "혼탁의 물약", + shrink_grid_long: "혼탁의 물약", + shrink_grid_strong: "혼탁의 물약", + }, + + "item.minecraft.splash_potion.effect": { + enlarge_grid: "투척용 명료의 물약", + enlarge_grid_long: "투척용 명료의 물약", + enlarge_grid_strong: "투척용 명료의 물약", + shrink_grid: "투척용 혼탁의 물약", + shrink_grid_long: "투척용 혼탁의 물약", + shrink_grid_strong: "투척용 혼탁의 물약", + }, + + "item.minecraft.lingering_potion.effect": { + enlarge_grid: "잔류형 명료의 물약", + enlarge_grid_long: "잔류형 명료의 물약", + enlarge_grid_strong: "잔류형 명료의 물약", + shrink_grid: "잔류형 혼탁의 물약", + shrink_grid_long: "잔류형 혼탁의 물약", + shrink_grid_strong: "잔류형 혼탁의 물약", + }, + + "item.minecraft.tipped_arrow.effect": { + enlarge_grid: "명료의 화살", + enlarge_grid_long: "명료의 화살", + enlarge_grid_strong: "명료의 화살", + shrink_grid: "혼탁의 화살", + shrink_grid_long: "혼탁의 화살", + shrink_grid_strong: "혼탁의 화살", + }, + + "itemGroup.hexcasting": { + hexcasting: "육각술", + scrolls: "육각술 (두루마리)", + }, + + "gui.hexcasting": { + spellcasting: "주문문양 격자", + }, + + "category.hexcasting": { + "binds": "육각술", + }, + + "key.hexcasting": { + "spellbook_prev": "이전 마도서 페이지", + "spellbook_next": "다음 마도서 페이지", + }, + + "tag.hexcasting": { + staves: "육각술 지팡이", + edified_logs: "교화된 원목", + edified_planks: "교화된 판자", + phial_base: "빈 약병", + }, + + "tag.item.hexcasting": { + brainswept_circle_components: "정신이 벗겨진 마법진 부품", + directrices: "지향석", + grants_root_advancement: "기본 발전 과제 부여", + impeti: "원동석", + seal_materials: "봉인 재료", + }, + + "emi.category.hexcasting": { + brainsweep: "정신 벗기기", + "craft.battery": "약병 제작", + edify: "묘목 교화", + villager_leveling: "거래 레벨", + villager_profession: "주민 직업", + }, + + "text.autoconfig.hexcasting": { + title: "Hexcasting 설정", + + category: { + common: "공통", + client: "클라이언트", + server: "서버", + }, + + option: { + common: { + dustMediaAmount: { + "": "가루 미디어량", + "@Tooltip": "자수정 가루 하나가 지닌 미디어량", + }, + shardMediaAmount: { + "": "파편 미디어량", + "@Tooltip": "자수정 조각 하나가 지닌 미디어량", + }, + chargedCrystalMediaAmount: { + "": "충전 결정 미디어량", + "@Tooltip": "충전된 자수정 결정 하나가 지닌 미디어량", + }, + mediaToHealthRate: { + "": "미디어 대 체력 비율", + "@Tooltip": "체력으로 시전할 때 하트 반 칸이 몇 미디어에 해당하는지", + }, + cypherCooldown: { + "": "사이퍼 재사용 대기시간", + "@Tooltip": "사이퍼의 재사용 대기시간(틱)", + }, + trinketCooldown: { + "": "장신구 재사용 대기시간", + "@Tooltip": "장신구의 재사용 대기시간(틱)", + }, + artifactCooldown: { + "": "유물 재사용 대기시간", + "@Tooltip": "유물의 재사용 대기시간(틱)", + }, + }, + + client: { + ctrlTogglesOffStrokeOrder: { + "": "Ctrl로 획순 표시 끄기", + "@Tooltip": "Ctrl 키가 패턴의 색상 그라데이션을 *끄는* 용도로 동작할지 여부", + }, + disableInworldScrolling: { + "": "월드 내 스크롤 비활성화", + "@Tooltip": "일반 월드에서 마도서와 주판의 스크롤 입력을 비활성화하되, 키 설정과 지팡이 화면 스크롤은 그대로 유지" + }, + invertSpellbookScrollDirection: { + "": "마도서 스크롤 방향 반전", + "@Tooltip": "위로 스크롤할 때 마도서 페이지 번호가 증가하고 반대로 동작할지 여부", + }, + invertAbacusScrollDirection: { + "": "주판 스크롤 방향 반전", + "@Tooltip": "위로 스크롤할 때 주판 값이 증가하고 반대로 동작할지 여부", + }, + gridSnapThreshold: { + "": "격자 스냅 임계값", + "@Tooltip": "지팡이를 사용할 때 한 점에서 다음 점으로 스냅되기 위해 이동해야 하는 거리입니다. 0.5는 절반(50%) 지점을 의미합니다. (0.5-1)", + }, + clickingTogglesDrawing: { + "": "클릭으로 그리기 전환", + "@Tooltip": "클릭 후 드래그 대신 클릭으로 그리기 시작과 중지를 전환할지 여부", + }, + alwaysShowListCommas: { + "": "목록 쉼표 항상 표시", + "@Tooltip": "목록 표시 시 모든 이오타 유형을 쉼표로 구분할지 여부(기본적으로 패턴 이오타는 쉼표를 사용하지 않음)", + }, + advancedTooltipsShowsIotaNBT: { + "": "고급 툴팁에 이오타 NBT 표시", + "@Tooltip": "고급 툴팁(F3+H)을 켰을 때 초점구나 마도서 같은 아이템에 저장된 이오타의 전체 NBT를 표시할지 여부", + }, + staticActiveSlates: { + "": "활성 석판 정적 렌더링", + "@Tooltip": "활성 석판의 패턴을 흔들림 없이 렌더링할지 여부(활성 석판이 많을 때 성능 향상)", + }, + }, + + server: { + opBreakHarvestLevel: { + "": "파괴 채굴 레벨", + "@Tooltip": "블록 파괴 주문의 채굴 레벨입니다.\n0 = 나무, 1 = 돌, 2 = 철, 3 = 다이아몬드, 4 = 네더라이트.", + }, + maxOpCount: { + "": "최대 액션 수", + "@Tooltip": "서버 멈춤을 피하기 위해 한 틱에 실행할 수 있는 최대 액션 수입니다.", + }, + maxSpellCircleLength: { + "": "최대 마법진 길이", + "@Tooltip": "마법진에 들어갈 수 있는 석판의 최대 수", + }, + actionDenyList: { + "": "액션 차단 목록", + "@Tooltip": "허용되지 않은 액션의 리소스 위치입니다. 이 중 하나를 시전하려 하면 변고가 발생합니다. 예를 들어 hexcasting:get_caster는 정신의 반사를 막습니다.", + }, + circleActionDenyList: { + "": "마법진 액션 차단 목록", + "@Tooltip": "마법진 안에서 허용되지 않은 액션의 리소스 위치입니다. 마법진에서 이 중 하나를 시전하려 하면 변고가 발생합니다.", + }, + greaterTeleportSplatsItems: { + "": "상급 순간이동 시 아이템 흩뿌림", + "@Tooltip": "상급 순간이동을 사용할 때 플레이어 인벤토리의 아이템이 튀어나갈지 여부" + }, + doesTrueNameHaveAmbit: { + "": "진명이 영향 범위를 가지는지", + "@Tooltip": "진명(플레이어에 대한 엔티티 참조)이 일반 영향 범위 밖에서도 해당 플레이어를 대상으로 삼을 수 있게 할지 여부", + }, + tpDimDenylist: { + "": "순간이동 차원 차단 목록", + "@Tooltip": "순간이동이 허용되지 않은 차원의 리소스 위치", + }, + villagersOffendedByMindMurder: { + "": "주민이 정신 살해에 분노", + "@Tooltip": "다른 주민이 정신 벗기기를 당했을 때 주민들이 플레이어에게 화를 낼지 여부", + }, + traderScrollChance: { + "": "떠돌이 상인 두루마리 확률", + "@Tooltip": "떠돌이 상인이 고대 두루마리를 판매할 확률", + }, + scrollInjectionsRaw: { + "": "두루마리 주입 가중치", + "@Tooltip": "전리품 표 이름을, 그 안에 월드별 패턴 두루마리를 얼마나 넣을지에 매핑합니다. 여기 표시된 상자에서는 약 50% 확률로 두루마리를 얻고, 조건이 충족되면 1개부터 그 수만큼의 두루마리가 생성됩니다.", + }, + loreInjectionsRaw: { + "": "전승 주입 위치", + "@Tooltip": "전승 조각을 추가할 전리품 표 목록입니다.", + }, + loreChance: { + "": "전승 조각 확률", + "@Tooltip": "전승 조각이 위 전리품 표 중 하나에 나타날 확률입니다.", + }, + cypherInjectionsRaw: { + "": "고대 사이퍼 주입 위치", + "@Tooltip": "고대 사이퍼를 추가할 전리품 표 목록입니다.", + }, + cypherChance: { + "": "고대 사이퍼 확률", + "@Tooltip": "고대 사이퍼가 위 전리품 표 중 하나에 나타날 확률입니다.", + }, + amethystShardModification: { + "": "자수정 조각 드롭률 변경", + "@Tooltip": "군집에서 떨어지는 자수정 조각 수가 얼마나 증가/감소하는지입니다.", + }, + }, + }, + }, + + "advancement.hexcasting:": { + root: { + "": "육각술 연구", + desc: "땅속 깊은 곳에서 자라나는 농축된 미디어를 찾아 채굴하세요.", + }, + creative_unlocker: { + "": "무한한 힘", + "desc": "크리에이티브 디버그 아이템을 찾았습니다." + }, + enlightenment: { + "": "깨달음에 도달하기", + desc: "거의 모든 체력을 써서 주문문양을 시전해 장벽을 깨뜨리세요.", + }, + wasteful_cast: { + "": "낭비하지 않으면...", + desc: "주문문양을 시전하며 많은 미디어를 낭비하세요.", + }, + big_cast: { + "": "...부족하지 않다", + desc: "정말 막대한 미디어가 필요한 주문 하나를 시전하세요.", + }, + y_u_no_cast_angy: { + "": "보이지 않는 우회", + desc: "두루마리로 주문을 시전하려다 실패하세요.", + }, + opened_eyes: { + "": "뜨인 눈", + desc: "주문문양의 대가로 자연이 내 정신 일부를 가져가게 하세요. 더 많이 내주면 무슨 일이 벌어질까요?", + }, + lore: { + "": "육각술 전승", + desc: "전승 조각 읽기", + }, + "lore/": { + cardamom1: { + "": "카다멈 스틸스 #1", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #1", + }, + cardamom2: { + "": "카다멈 스틸스 #2", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #2", + }, + cardamom3: { + "": "카다멈 스틸스 #3", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #3, 1/2", + }, + cardamom4: { + "": "카다멈 스틸스 #3 2부", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #3, 2/2", + }, + cardamom5: { + "": "카다멈 스틸스 #4", + desc: "카다멈 스틸스가 아버지에게 보낸 편지 #4", + }, + experiment1: "울아이 사례 기록", + experiment2: "울아이 면담 기록", + inventory: "복원 기록 72", + }, + }, + + "stat.hexcasting": { + media_used: "소비한 미디어(가루 단위)", + media_overcast: "초과 시전한 미디어(가루 단위)", + patterns_drawn: "그린 패턴", + spells_cast: "시전한 주문", + }, + + "death.attack.hexcasting": { + overcast: { + "": "%s의 정신이 에너지에 삼켜졌다", + player: "%s의 정신이 %s와 싸우던 중 에너지에 삼켜졌다", + }, + }, + + "command.hexcasting": { + recalc: "패턴을 다시 계산했습니다", + + pats: { + listing: "이 세계의 패턴:", + all: "%s에게 모든 두루마리 %d개를 지급했습니다", + "specific.success": "%3$s에게 ID %2$s의 %1$s을(를) 지급했습니다", + }, + + brainsweep: { + "": "%s의 정신을 벗겼습니다", + "fail.badtype": "%s은(는) 몹이 아닙니다", + "fail.already": "%s은(는) 이미 비어 있습니다", + }, + }, + + // === Inline ! === + "matcher.hexcasting.pattern": { + "title": "육각 패턴", + "title.styled": "육각 패턴 ", + "description": "시각적 육각술 패턴", + "example": "" + }, + + hexcasting: { + "pattern.unknown": "알 수 없는 패턴 리소스 위치 %s", + + debug: { + media_withdrawn: "%s - 꺼낸 미디어: %s", + "media_withdrawn.with_dust": "%s - 꺼낸 미디어: %s (가루 %s개)", + media_inserted: "%s - 넣은 미디어: %s", + "media_inserted.with_dust": "%s - 넣은 미디어: %s (가루 %s개)", + all_media: "전체 내용", + infinite_media: "무한", + }, + + loot_hex: { + "shatter": "분쇄", + "kindle": "불붙이기", + "illuminate": "조명", + "growth": "성장", + "lunge": "돌진", + "sidestep": "회피", + "ascend": "상승", + "blink": "점멸", + "blastoff": "발사", + "radar": "탐지", + "beckon": "유인", + "detonate": "폭파", + "shockwave": "충격파", + "heat_wave": "열파", + "wither_wave": "위더 파동", + "flight_zone": "비행 영역", + }, + + // TODO: post-eigengrau make these less anticlimactic + message: { + cant_overcast: "그 주문문양에는 내가 가진 것보다 더 많은 미디어가 필요했다... 계산을 다시 확인해야겠다.", + cant_great_spell: "어째서인지 주문이 실패했다... 내 실력이 부족한 걸까?", + }, + + tooltip: { + spellbook: { + page: { + "": "선택한 페이지 %d/%d", + sealed: "선택한 페이지 %d/%d (%s)", + }, + page_with_name: { + "": "선택한 페이지 %d/%d (\"%s\")", + sealed: "선택한 페이지 %d/%d (\"%s\") (%s)", + }, + empty: { + "": "비어 있음", + sealed: "비어 있음 (%s)", + }, + sealed: "봉인됨", + }, + + scroll: { + needs_purchase: "구매하면 패턴 표시", + pattern_not_loaded: "인벤토리에 넣어 패턴 불러오기", + "recalc_warning.line1": "%s의 월드별 패턴이 아직 계산되지 않았습니다!", + "recalc_warning.line2": "/hexcasting recalcPatterns를 실행한 뒤 새 두루마리를 얻으세요.", + }, + + abacus: { + "": "%d", + reset: "0으로 초기화", + "reset.nice": "좋아", + }, + + circle: { + no_exit: "미디어의 흐름이 %s에서 출구를 찾지 못했다", + many_exits: "미디어의 흐름이 %s에서 너무 많은 출구를 가졌다", + no_closure: "미디어의 흐름은 %s의 원동석으로 돌아갈 수 없다", + }, + + lens: { + "pattern.invalid": "잘못된 패턴", + bee: { + "": "벌 %s마리", + single: "벌 %s마리", + }, + "impetus.redstone.bound": { + "": "%s에 연결됨", + none: "연결 안 됨", + }, + akashic: { + "bookshelf.location": "%s에 기록", + "record.count": { + "": "이오타 %s개 저장됨", + single: "이오타 %s개 저장됨", + }, + }, + }, + + brainsweep: { + min_level: "레벨 %s 이상", + level: "레벨 %s", + product: "정신 없는 몸", + }, + + media: "가루 %d개", + media_amount: "내용: %s (%s)", + "media_amount.advanced": "내용: %s/%s (%s)", + stored_hex: "주문문양: ", + + list_contents: "[%s]", + null_iota: "Null", + jump_iota: "[Jump]", + pattern_iota: "HexPattern(%s)", + boolean_true: "True", + boolean_false: "False", + }, + // ^ tooltip + spelldata: { + onitem: "내용: %s", + anything: "아무것", + unknown: "망가진 이오타", + "entity.whoknows": "알 수 없는 엔티티", + "akashic.nopos": "아카식 레코드는 이곳의 어떤 이오타도 알지 못한다(버그입니다)", + }, + + subtitles: { + casting: { + pattern: { + start: "패턴 시작", + add_segment: "선 추가", + }, + cast: { + fail: "변고가 으스러진다", + normal: "액션이 울린다", + spell: "주문이 튄다", + hermes: "헤르메스가 튕긴다", + thoth: "토트가 튕긴다", + }, + }, + + ambiance: "주문문양 격자가 울린다", + "staff.reset": "시전이 초기화된다", + + abacus: { + "": "주판이 딸깍인다", + shake: "주판이 흔들린다", + }, + "spellcircle.add_pattern": "마법진이 지직거린다", + "spellcircle.fail": "마법진이 꺼진다", + "scroll.dust": "두루마리가 가루로 덮인다", + "scroll.scribble": "두루마리에 휘갈겨 쓴다", + "impetus.fletcher.tick": "화살 제조인의 원동석이 째깍인다", + "impetus.redstone.register": "성직자의 원동석이 울린다", + "impetus.redstone.clear": "성직자의 원동석이 지워진다", + "lore_fragment.read": "전승 조각을 읽는다", + "flight.ambience": "플레이어가 난다", + "flight.finish": "비행이 끝난다", + }, + + attributes: { + grid_zoom: "시전 격자 크기", + media_consumption: "미디어 소비량", + ambit_radius: "플레이어 영향 반경", + sentinel_radius: "감시자 영향 반경", + // TODO: the +1 is kind of janky + scry_sight: "염시 시야", + feeble_mind: "나약한 정신" + }, + + // Action localizations + + action: { + "hexcasting:": { + "const/": { + "null": "무의 반사", + "true": "참의 반사", + "false": "거짓의 반사", + + "vec/": { + px: "벡터의 반사 +X", + py: "벡터의 반사 +Y", + pz: "벡터의 반사 +Z", + nx: "벡터의 반사 -X", + ny: "벡터의 반사 -Y", + nz: "벡터의 반사 -Z", + "0": "벡터의 반사 0", + }, + + "double/": { + pi: "호의 반사", + tau: "원의 반사", + "e": "오일러의 반사", + phi: "조화의 반사", + }, + }, + + get_caster: "정신의 반사", + "entity_pos/eye": "나침반의 정화", + "entity_pos/foot": "나침반의 정화 II", + get_entity_look: "시준기의 정화", + get_entity_height: "측고기의 정화", + get_entity_velocity: "보폭의 정화", + raycast: "궁수의 증류", + "raycast/axis": "건축가의 증류", + "raycast/entity": "정찰병의 증류", + + "circle/": { + impetus_pos: "길잡이돌의 반사", + impetus_dir: "자철석의 반사", + "bounds/min": "작은 접힘의 반사", + "bounds/max": "큰 접힘의 반사", + }, + + append: "통합의 증류", + unappend: "도출의 분해", + index: "선택의 증류", + singleton: "단일의 정화", + empty_list: "공백의 반사", + reverse: "역행의 정화", + last_n_list: "무리의 묘수", + splat: "무리의 붕괴", + index_of: "탐지자의 증류", + remove_from: "절제자의 증류", + slice: "선택의 고양", + replace: "외과의의 고양", + construct: "연설가의 증류", + deconstruct: "연설가의 분해", + + get_entity: "엔티티의 정화", + "get_entity/": { + animal: "엔티티의 정화: 동물", + monster: "엔티티의 정화: 몬스터", + item: "엔티티의 정화: 아이템", + player: "엔티티의 정화: 플레이어", + living: "엔티티의 정화: 생물", + }, + + zone_entity: "구역의 증류: 전체", + "zone_entity/": { + animal: "구역의 증류: 동물", + monster: "구역의 증류: 몬스터", + item: "구역의 증류: 아이템", + player: "구역의 증류: 플레이어", + living: "구역의 증류: 생물", + not_animal: "구역의 증류: 비동물", + not_monster: "구역의 증류: 비몬스터", + not_item: "구역의 증류: 비아이템", + not_player: "구역의 증류: 비플레이어", + not_living: "구역의 증류: 비생물", + }, + + swap: "광대의 묘수", + rotate: "회전의 묘수", + rotate_reverse: "회전의 묘수 II", + duplicate: "쌍둥이의 분해", + over: "탐광자의 묘수", + tuck: "장의사의 묘수", + "2dup": "디오스쿠로이의 묘수", + duplicate_n: "쌍둥이의 묘수", + stack_len: "무리의 반사", + fisherman: "낚시꾼의 묘수", + "fisherman/copy": "낚시꾼의 묘수 II", + swizzle: "사기꾼의 묘수", + + unique: "고유성의 정화", + and: "논리곱의 증류", + or: "논리합의 증류", + xor: "배타의 증류", + + greater: "최대의 증류", + less: "최소의 증류", + greater_eq: "최대의 증류 II", + less_eq: "최소의 증류 II", + equals: "동등의 증류", + not_equals: "부등의 증류", + type_equals: "유사성의 증류", + type_not_equals: "비유사성의 증류", + not: "부정의 정화", + bool_coerce: "예언자의 정화", + if: "예언자의 고양", + + add: "덧셈의 증류", + sub: "뺄셈의 증류", + mul: "곱셈의 증류", + div: "나눗셈의 증류", + abs: "길이의 정화", + pow: "거듭제곱의 증류", + floor: "내림의 정화", + ceil: "올림의 정화", + modulo: "나머지의 증류", + construct_vec: "벡터의 고양", + deconstruct_vec: "벡터의 붕괴", + sin: "사인의 정화", + cos: "코사인의 정화", + tan: "탄젠트의 정화", + arcsin: "역사인의 정화", + arccos: "역코사인의 정화", + arctan: "역탄젠트의 정화", + arctan2: "역탄젠트의 증류", + random: "엔트로피의 반사", + logarithm: "로그의 증류", + coerce_axial: "축의 정화", + + read: "필경사의 반사", + "read/entity": "연대기 작가의 정화", + "read/local": "무닌의 반사", + + write: "필경사의 묘수", + "write/entity": "연대기 작가의 묘수", + "write/local": "후긴의 묘수", + + readable: "감사자의 반사", + "readable/entity": "감사자의 정화", + writable: "평가자의 반사", + "writable/entity": "평가자의 정화", + "akashic/read": "아카샤의 증류", + "akashic/write": "아카샤의 묘수", + + print: "드러내기", + beep: "음 내기", + explode: "폭발", + "explode/fire": "화염구", + add_motion: "충격", + blink: "점멸", + break_block: "블록 파괴", + place_block: "블록 설치", + + "craft/cypher": "사이퍼 제작", + "craft/trinket": "장신구 제작", + "craft/artifact": "유물 제작", + "craft/battery": "약병 제작", + + recharge: "아이템 재충전", + erase: "아이템 지우기", + create_water: "물 생성", + destroy_water: "액체 파괴", + ignite: "점화", + extinguish: "범위 소화", + conjure_block: "블록 소환", + conjure_light: "빛 소환", + bonemeal: "과성장", + edify: "묘목 교화", + colorize: "안료 내면화", + cycle_variant: "시전자의 현혹", + + "sentinel/": { + create: "감시자 소환", + "create/great": "상급 감시자 소환", + destroy: "감시자 추방", + get_pos: "감시자 위치 찾기", + wayfind: "감시자 길찾기", + }, + + "potion/": { + weakness: "하얀 태양의 천저", + levitation: "푸른 태양의 천저", + wither: "검은 태양의 천저", + poison: "붉은 태양의 천저", + slowness: "초록 태양의 천저", + + regeneration: "하얀 태양의 천정", + night_vision: "푸른 태양의 천정", + absorption: "검은 태양의 천정", + haste: "붉은 태양의 천정", + strength: "초록 태양의 천정", + }, + + flight: "알티오라", + "flight/range": "은둔자의 비행", + "flight/time": "나그네의 비행", + "flight/can_fly": "비행사의 정화", + + lightning: "번개 소환", + summon_rain: "비 소환", + dispel_rain: "비 거두기", + create_lava: "용암 생성", + "teleport/great": "상급 순간이동", + brainsweep: "정신 벗기기", + + escape: "고려", + open_paren: "내성", + close_paren: "회상", + undo: "소실", + + eval: "헤르메스의 묘수", + "eval/cc": "이리스의 묘수", + for_each: "토트의 묘수", + halt: "카론의 묘수", + thanatos: "타나토스의 반사", + + "interop/": { + "gravity/": { + get: "중력의 정화", + set: "중력 변경", + }, + + "pehkui/": { + get: "걸리버의 정화", + set: "크기 변경", + }, + }, + }, + + // hexcasting.action.book.[resloc] override the name of that pattern in the patchi book, for abbreviations + "book.hexcasting:": { + get_entity_height: "측고기의 정화", + + "get_entity/": { + animal: "엔티티 정화: 동물", + monster: "엔티티 정화: 몬스터", + item: "엔티티 정화: 아이템", + player: "엔티티 정화: 플레이어", + living: "엔티티 정화: 생물", + }, + + zone_entity: "구역 증류: 전체", + "zone_entity/": { + animal: "구역 증류: 동물", + monster: "구역 증류: 몬스터", + item: "구역 증류: 아이템", + player: "구역 증류: 플레이어", + living: "구역 증류: 생물", + not_animal: "구역 증류: 비동물", + not_monster: "구역 증류: 비몬스터", + not_item: "구역 증류: 비아이템", + not_player: "구역 증류: 비플레이어", + not_living: "구역 증류: 비생물", + }, + + mul: "곱셈의 증류", + div: "나눗셈의 증류", + arcsin: "역사인의 정화", + arccos: "역코사인의 정화", + arctan: "역탄젠트의 정화", + arctan2: "역탄젠트의 증류", + + "const/vec/": { + x: "벡터 반사 +X/-X", + y: "벡터 반사 +Y/-Y", + z: "벡터 반사 +Z/-Z", + }, + + "read/entity": "연대기 작가의 정화", + bool_to_number: "수비학자의 정화", + number: "수치의 반사", + mask: "장부지기의 묘수", + }, + }, + // ^ action + + "special.hexcasting:": { + number: "수치의 반사: %s", + mask: "장부지기의 묘수: %s", + }, + + "iota.hexcasting:": { + null: { + "": "Null", + desc: "null 값", + }, + double: { + "": "숫자", + desc: "숫자", + }, + boolean: { + "": "논리값", + desc: "논리값", + }, + entity: { + "": "엔티티", + desc: "엔티티", + }, + list: { + "": "목록", + desc: "목록", + }, + pattern: { + "": "패턴", + desc: "패턴", + }, + garbage: { + "": "가비지", + desc: "가비지", + }, + vec3: { + "": "벡터", + desc: "벡터", + }, + continution: { + "": "계속", + desc: "점프 이오타", + }, + }, + + mishap: { + "": "%s: %s", + + invalid_pattern: "패턴 %s은(는) 어떤 액션에도 연결되어 있지 않다", + invalid_pattern_generic: "그 패턴은 어떤 액션에도 연결되어 있지 않다", + unescaped: "패턴을 평가해야 했지만 대신 %s을(를) 평가했다", + + not_enough_args: "인수가 %s개 이상 필요했지만 스택 높이는 %s뿐이었다", + no_args: "인수가 %s개 이상 필요했지만 스택이 비어 있었다", + needs_parens: "먼저 내성을 사용하지 않았다", + + wrong_dimension: "%2$s에서 %1$s을(를) 볼 수 없다", + entity_too_far: "%s은(는) 범위 밖이다", + immune_entity: "%s은(는) 바꿀 수 없다", + eval_too_much: "너무 많은 패턴을 평가했다", + no_item: "%s이(가) 필요하지만 아무것도 없었다", + "no_item.offhand": "다른 손에 %s이(가) 필요하지만 아무것도 없었다", + bad_entity: "%s이(가) 필요하지만 %s을(를) 얻었다", + bad_brainsweep: "%s이(가) 그 존재의 정신을 거부했다", + already_brainswept: "그 정신은 이미 사용되었다", + no_spell_circle: "마법진이 필요하다", + others_name: "%s의 영혼의 사생활을 침범하려 했다", + "others_name.self": "내 이름을 너무 무모하게 드러내려 했다", + + divide_by_zero: { + divide: "%s을(를) %s(으)로 나누려 했다", + project: "%s을(를) %s에 사영하려 했다", + exponent: "%s을(를) %s제곱하려 했다", + logarithm: "%s의 로그를 밑 %s로 구하려 했다", + + zero: { + "": "0", + power: "0제곱", + vec: "영벡터", + }, + power: "%s의 거듭제곱", + sin: "%s의 사인", + cos: "%s의 코사인", + }, + + invalid_operator_args: { + one: "스택 인덱스 %d에서 예상치 못한 이오타를 얻었다: %s", + many: "스택 인덱스 %d-%d에서 예상치 못한 이오타 %d개를 얻었다: %s", + }, + + no_akashic_record: "%s에 아카식 레코드가 없다", + disallowed: "%s은(는) 서버 관리자에 의해 금지되었다", + disallowed_generic: "그 패턴은 서버 관리자에 의해 금지되었다", + disallowed_circle: "%s은(는) 서버 관리자에 의해 마법진에서 금지되었다", + disallowed_circle_generic: "그 패턴은 서버 관리자에 의해 마법진에서 금지되었다", + invalid_spell_datum_type: "잘못된 타입의 값을 SpellDatum으로 사용하려 했다: %s (클래스 %s). 이것은 모드의 버그입니다.", + unknown: "예외(%s)를 던졌다. 이것은 모드의 버그입니다.", + stack_size: "스택 크기 제한을 초과했다", + bad_caster: "더 큰 정신이 필요한 패턴을 실행하려 했다", + + invalid_value: { + "": "스택 인덱스 %s에 %s이(가) 필요했지만 %s을(를) 얻었다: %s", + + class: { + double: "숫자", + boolean: "논리값", + vector: "벡터", + list: "목록", + pattern: "패턴", + continuation: "점프 이오타", + garbage: "가비지", + null: "null", + + entity: { + "": "엔티티", + mob: "몹", + item: "아이템 엔티티", + player: "플레이어", + living: "살아있는 엔티티", + }, + + entity_or_vector: "엔티티 또는 벡터", + + unknown: "(알 수 없음, 어라, 이건 버그다)", + }, + + numvec: "숫자 또는 벡터", + numlist: "정수 또는 목록", + "list.pattern": "패턴 목록", + + double: { + positive: { + "": "양수", + less: "%d보다 작은 양수", + "less.equal": "%d 이하의 양수", + }, + between: "%d와 %d 사이의 숫자", + }, + + int: { + "": "정수", + positive: { + "": "양의 정수", + less: "%d보다 작은 양의 정수", + "less.equal": "%d 이하의 양의 정수", + }, + between: "%d와 %d 사이의 정수", + }, + + evaluatable: "평가 가능한 것", + bool_commute: "논리값, 0, 또는 1", + }, + + location_: { + too_far: "%s은(는) 범위 밖이다", + out_of_world: "%s은(는) 월드 안에 있지 않다", + too_close_to_out: "%s은(는) 월드 경계에 너무 가깝다", + forbidden: "%s은(는) 당신에게 금지되어 있다", + bad_dimension: "이 차원은 그 액션을 금지한다", + }, + + bad_item: { + "": "%s이(가) 필요하지만 %d개의 %s을(를) 얻었다", + offhand: "다른 손에 %s이(가) 필요하지만 %d개의 %s을(를) 얻었다", + hotbar: "핫바 어딘가에 %s이(가) 필요하다", + + iota: { + "": "이오타를 저장할 장소", + read: "이오타를 읽어올 장소", + write: "이오타를 쓸 장소", + readonly: "%s을(를) 받아들일 장소", + }, + + media: "미디어를 담은 아이템", + media_for_battery: "원시 미디어 아이템", + only_one: "정확히 하나의 아이템", + eraseable: "지울 수 있는 아이템", + bottle: "유리병", + rechargable: "재충전 가능한 아이템", + colorizer: "안료", + variant: "변종이 있는 아이템", + placeable: "설치 가능한 아이템", + }, + + bad_block: { + "": "%2$s에 %1$s이(가) 필요했지만 %3$s을(를) 얻었다", + sapling: "묘목", + replaceable: "블록을 놓을 장소", + }, + + "circle.bool_directrix": { + no_bool: "%s에서 마주친 이오타는 논리값이 아니라 %s였다", + empty_stack: "%s에서 스택이 비어 있었다", + }, + }, + // ^ mishap + + circles: { + no_exit: "%s의 미디어 흐름이 출구를 찾지 못했다", + many_exits: "%s의 미디어 흐름에 출구가 너무 많았다", + }, + + + // === Patchi stuff! === + + + landing: "육각형 격자 위에 낯설고 거친 패턴을 그리는 새로운 마법 기술을 발견한 듯하다. \ + 마음을 사로잡는다. 내 생각과 발견을 기록하는 일지를 쓰기 시작하기로 했다.\ + $(br2)$(l:https://forum.petra-k.at/index.php)포럼 링크/$", + + category: { + basics: { + "": "시작하기", + desc: "이 기술의 수행자들은 $(l:items/staff)$(item)지팡이/$로 공중에 기묘한 패턴을 그려 이른바 $(hex)주문문양/$을 시전하거나, \ + 자신을 대신해 시전해 줄 $(l:items/hexcasting)$(item)강력한 마법 아이템/$을 만들었다고 한다. \ + 나도 같은 일을 하려면 어떻게 해야 할까?", + }, + casting: { + "": "육각술", + desc: "옛 대가들이 어떻게 $(hex)주문문양/$을 시전했는지 이해하기 시작했다! 조금 복잡하지만, \ + 분명 알아낼 수 있을 것이다. 어디 보자...", + }, + items: { + "": "아이템", + desc: "이 장에는 연구 중 마주칠 법한 마법적이고 신비한 아이템들을 기록한다.", + }, + + greatwork: { + "": "위대한 작업", + desc: "나는... 너무 많은 것을 보았다. 나는... 소멸과 분해와 재구성을... 겪었다. \ + 세계의 원자들이 뒤집히고 전복되고 에너지로 격하되며 비명을 지르는 것을 보았다. \ + 보았다 보았다 보았$(k)get stick bugged lmao/$", + // alwinfy you think you're so funny + }, + + lore: { + "": "전승", + desc: "내 기술과 직접 관련은 없는 편지와 글을 몇 가지 찾아냈다. \ + 하지만 이것들로 세계의 역사 일부를 짐작할 수 있을지도 모른다. 어디 보자...", + }, + + interop: { + "": "모드 간 호환성", + desc: "Hexcasting과 상호 작용하는 모드가 설치된 듯하다! 여기에 자세히 적어 두었다.", + }, + + patterns: { + "": "패턴", + desc: "내가 발견한 모든 패턴과 그 기능의 목록.", + }, + spells: { + "": "주문", + desc: "세계에 마법적 효과를 일으키는 패턴과 액션.", + }, + great_spells: { + "": "고위 주문", + desc: "여기에 기록한 주문들은 전설적인 난도와 힘을 지녔다고 전해진다. \ + 기록에 따르면 그것들은 $(l:items/scroll)드물게/$만 남겨진 듯하다(그럴 만한 이유가 있다고 문헌은 주장한다). \ + 그래 봤자 사라진 전통주의자들의 헛소리일 뿐일 것이다. 패턴은 패턴이니까.$(br2)\ + 무슨 일이 잘못될 수 있겠는가?", + }, + }, + // ^ categories + + entry: { + media: "미디어", + creative_items: "크리에이티브 전용 아이템", + geodes: "정동석", + couldnt_cast: "좌절", + start_to_see: "나는 무엇을 본 거지", + "101": "육각술 입문", + vectors: "벡터 입문서", + mishaps: "변고", + stack: "스택", + naming: "액션의 이름", + influences: "영향", + mishaps2: "깨달은 자의 변고", + amethyst: "자수정", + + staff: "지팡이", + lens: "염시 렌즈", + jeweler_hammer: "보석 세공 망치", + + thought_knot: "생각 매듭", + focus: "초점구", + abacus: "주판", + spellbook: "마도서", + + scroll: "두루마리", + slate: "석판", + + // why is this called "hexcasting"? + hexcasting: "시전 아이템", + ancient_cyphers: "고대 사이퍼", + phials: "미디어 약병", + potions: "육각술 물약", + pigments: "안료", + + edified: "교화된 나무", + decoration: "장식 블록", + + the_work: "작업", + brainsweeping: "정신 벗기기에 관하여", + spellcircles: "마법진", + impetus: "원동석", + directrix: "지향석", + akashiclib: "아카식 도서관", + quenching_allays: "알레이 진정시키기", + fanciful_staves: "화려한 지팡이", + + // and the actions + readers_guide: "이 장을 읽는 법", + // ops + basics_pattern: "기본 패턴", + numbers: "숫자 리터럴", + math: "수학", + advanced_math: "고급 수학", + sets: "집합", + consts: "상수", + stackmanip: "스택 조작", + logic: "논리 연산자", + entities: "엔티티", + lists: "목록 조작", + patterns_as_iotas: "패턴 이스케이프", + readwrite: "읽기와 쓰기", + meta: "메타 평가", + circle_patterns: "마법진 패턴", + akashic_patterns: "아카식 패턴", + + // spells + itempicking: "아이템 다루기", + basic_spell: "기본 주문", + blockworks: "블록 조작", + nadirs: "천저", + hexcasting_spell: "시전 아이템 제작", + sentinels: "감시자", + // internalize pigment uses the action name + flights: "비행", + + // great spells usually use the action name + weather_manip: "날씨 조작", + zeniths: "천정", + + lore: { + cardamom1: "카다멈 스틸스, #1", + cardamom2: "카다멈 스틸스, #2", + cardamom3: "카다멈 스틸스, #3", + cardamom4: "카다멈 스틸스, #4", + cardamom5: "카다멈 스틸스, #5", + experiment1: "울아이 사례 기록", + experiment2: "울아이 면담 기록", + inventory: "복원 기록 #72", + }, + + interop: { + "": "모드 간 상호작용", + gravity: "Gravity Changer", + pehkui: "Pehkui", + // TODO: add something about Switchy once that PR gets merged + // https://github.com/sisby-folk/switchy/pull/44 + // i can't WAIT for all the hilarious people on the github issues about this one + }, + }, + // ^ entries + + page: { + creative_items: { + "1": "$(italic)크리에이티브/$ 수단으로만 얻을 수 있는 기발한 아이템들을 발명했다.", + creative_unlocker: "$(#74b3f2)미디어 큐브/$는 거의 무한한 힘의 원천으로, 내가 시전하고 싶은 어떤 $(hex)주문문양/$에도 무한한 $(media)미디어/$ 공급원처럼 작용한다. 꽤 맛있어 보이기도 한다. 먹으면 세계에 대해 더 많은 것을 드러내고, 어쩌면 스포일러 영역으로 들어가게 할지도 모른다...", + "2": "게다가 모루에서 $(#74b3f2)미디어 큐브/$의 이름을 바꾸면 내 $(hex)주문문양/$을 더 시험하고 이해하는 데 활용할 수 있을 것 같다. 내가 어쩌다 세계에 대한 크리에이티브 권능을 얻었다면, 다음 중 무엇이든 시도하기 전에 그것을 꺼 두는 편이 좋을지도 모른다.", + debug_media: { + // do not localize 'debug media' in the title or description, the item must be named exactly that + // TODO: we can remove the title if hexdoc-dev/hexdoc#85 is implemented, since the title in Patchouli already defaults to the item name + title: "debug media", + desc: "$(#74b3f2)미디어 큐브/$의 이름을 'debug media'로 바꾸면 소비된 미디어량에 대한 피드백이 채팅창에 표시된다.", + }, + // NOTE: The following feature documented is broken in the current implementation. It should be uncommented and the page in patchouli should be updated when the feature is fixed. + //debug_patterns: "$(#74b3f2)미디어 큐브/$의 이름을 'debug patterns'로 바꾸면 실행된 패턴의 순서에 대한 피드백이 채팅창에 표시된다." + }, + media: { + "1": "$(media)미디어/$는 정신 바깥에 존재하는 정신 에너지의 한 형태다. 모든 생명체는 무언가를 생각할 때 미량의 $(media)미디어/$를 만들고, 생각이 끝나면 그 미디어는 환경으로 방출된다.$(br2)$(hex)주문문양/$을 시전하는 기술은 이 $(media)미디어/$를 조작해 내 뜻대로 움직이게 하는 것이다.", + "2": "$(media)미디어/$는 다른 미디어에 영향을 줄 수 있다. 그 영향의 강도와 종류는 $(media)미디어/$를 패턴으로 끌어내 그리는 방식으로 조작할 수 있다.$(p)이 기술의 학자들은 막대 끝에 농축된 $(media)미디어/$ 덩어리를 붙여 사용했다. 그것을 공중에서 정밀한 형태로 휘둘러, 세계 자체에 영향을 줄 만큼 충분한 $(media)미디어/$를 충분한 정밀도로 조작했고, 그것이 $(hex)주문문양/$이라는 형태가 되었다.", + "3": "슬프게도, 완전한 지성을 가진 존재(아마 나 같은 존재)라도 극히 미량의 $(media)미디어/$만 만들어낼 수 있다. 내 뇌력만으로 주문문양을 시전하려는 것은 매우 비현실적이다.$(br2)하지만 전설에 따르면 $(media)미디어/$가 서서히 축적되어 결정 형태로 자라나는 지하 광맥이 있다고 한다.$(p)그런 곳을 하나라도 찾을 수 있다면...", + }, + + geodes: { + "1": "아하! 땅속 깊은 곳을 채굴하다가 에너지와 공명하는 거대한 정동석을 찾았다. 그 에너지는 내 두개골과 생각을 짓눌렀다. 그리고 지금, 나는 그 압력을 고체의 형태로 손에 쥐고 있다. 증명됐다. 이곳이 전설에서 말하던 $(media)미디어/$가 축적되는 장소임이 $(italic)틀림없다/$. $(br2)이 $(l:items/amethyst)$(item)자수정 결정/$들은 $(l:items/amethyst)$(thing)$(media)미디어/$가 편리하게 굳어진 형태/$인 것이 분명하다.", + "2": "전에 보았던 $(l:items/amethyst)$(item)자수정 조각/$에 더해, 이 결정들은 가루가 된 $(l:items/amethyst)$(item)자수정 가루/$와 $(l:items/amethyst)$(item)충전된 자수정 결정/$도 떨어뜨릴 수 있는 듯하다. 행운이 붙은 곡괭이를 쓰면 $(l:items/amethyst)$(item)충전된 자수정 결정/$을 찾을 확률이 더 높아질 것 같다.", + "3": "결정의 아름다움을 바라보고 있자니, 내 마음속에서 연결들이 마구 번쩍이는 것이 느껴진다. 공기 중의 $(media)미디어/$가 내게 들어와 힘을 주고, 밝혀 주고, 명료하게 만드는 것 같다... 아주 황홀하다.$(br2)마침내, 비전에 대한 연구가 의미를 갖기 시작했다!$(p)이제 내가 무엇을 보고 있는지 알았으니 오래된 전설을 다시 읽어 보자.", + }, + + couldnt_cast: { + "1": "아악! 왜 주문을 시전하게 해 주지 않는 거지?!$(br2)내가 찾은 두루마리는 진짜의 울림을 지니고 있다. 두루마리 안에서 그것이 웅웅대는 것을 $(italic)느낄/$ 수 있다. 패턴은 참되다. 아니, 참될 수 있는 만큼 참되다. 주문은 $(italic)바로 거기/$ 있다.$(p)하지만 얇은 막 저편에 있는 것처럼 느껴진다. 나는 그것을 불렀고, 그것은 나타나려 했지만, 끝내 $(italic)그럴 수 없었다/$.", + "2": "내가 주문에 가한 힘 때문에 장벽이 아주 조금 약해진 것 같았다. 그러나 내 최대의 노력, 가장 깊은 집중, 최상의 자수정, 가장 정밀한 그림에도 불구하고 그것은 장벽을 넘기를 $(italic)거부/$한다. 미칠 노릇이다.$(p)내 비전 연구는 $(italic)이것/$으로 끝인가? 무력함에 저주받고, 마땅히 가질 힘을 잃은 채로?$(br2)숨을 깊이 쉬어야 한다. 많지는 않았더라도, 내가 배운 것을 명상해야 한다...", + "3": "...곰곰이 되돌아본 끝에... 내 안의 변화를 발견했다.$(p)아무래도... $(l:items/amethyst)$(item)자수정/$ 대신 내 정신과 생명 에너지로 주문을 시전하는 능력이 열린 듯하다. 오래된 전설에 적힌 그대로다.$(p)왜 이제 가능한지는 모르겠다. 그저... 진실-지식-짐은 늘 거기 있었고, 이제 나는 그것을 본다. 안다. 짊어진다.$(br2)다행히 내 한계도 느껴진다. 체력이 가득할 때 내 건강에서 대략 $(l:items/amethyst)$(item)충전된 자수정/$ 두 개분의 $(media)미디어/$를 얻을 수 있을 것이다.", + "4": "생각만 해도 몸서리쳐진다. 지금까지의 연구에서 내 정신은 대체로 온전했다. 하지만 사실은, 내가 가느다란 연결의 한쪽 끝을 이루고 있다는 것이다.$(p)나는 다른 쪽과 이어져 있다. 그 상처로 인해 경계가 얇아진 쪽, 단순한 행위들이 영원한 영광을 철자하는 곳.$(p)그것을 나 자신을 위해 바라는 것이 그토록 잘못된 일인가?", + }, + + start_to_see: { + "1": "문헌은 거짓말하지 않았다. 자연은 제 몫을 가져갔다.", + "2": "그건... 그건...$(p)...내가 $(italic)여태/$ 겪은 것 중 $(italic)최악/$에 가까운 일이었다. 자연에게 내 계획을 바쳤더니, 단단한 미소와 찢어지는 감각이 돌아왔다. 빗속의 자수정 가루처럼 내 일부가 떨어져 나갔다.$(p)그 일을 기록할 지혜가 남아 있는 것은커녕, $(italic)살아남은/$ 것만으로도 운이 좋다. 이 일은 끝난 것으로 하고, 앞으로 $(hex)주문문양/$을 시전하기 전에는 계산을 다시 확인하며, 다시는 이런 실수를 저지르지 말아야 한다.", + "3": "...하지만.$(br2)하지만 지극히 짧은 순간, 내 그 일부가... $(italic)보았다/$... $(l:greatwork/the_work)$(thing)무언가/$를. 장소, 아니 설계였을까? (...그것 앞에서는 그런 구분이 중요하지 않아 보였다.)$(p)그리고... 막-장벽-피부-경계가, 순수한 사고-흐름-빛-에너지의 영역과 나를 갈라놓고 있었다. 기억한다. 보았고-생각했고-떠올렸고-느꼈다. 그 장벽의 가장자리가 아주 살짝 흐려지는 것을.$(p)나는 $(italic)통과하고 싶었다./$", + "4": "그러면 안 된다. 그래서는 안 된다는 걸 $(italic)안다/$. 위험하다. 너무 위험하다. 필요한 힘은... $(italic)단 한 획/$으로 나 자신을 죽음 그 자체의 턱밑까지 데려가야 할 것이다.$(br2)하지만 나는. 너무. $(italic)가깝다/$.$(p)$(italic)이것/$이 내 기술의 정점이다. 내가 찾아온 $(#54398a)깨달음/$이다.$(br2)더 원한다. 다시 보아야 한다. 나는 $(italic)볼 것이다/$.$(p)불멸의 영광 앞에서 내 필멸의 정신이 무엇이란 말인가?", + }, + + casting: { + overview: { + "1": "무슨 일이든 첫발을 제대로 떼는 것이 좋다고 믿는다. 그래서 내가 바라보는 위치에 작은 폭발을 일으키는 $(hex)주문문양/$의 패턴을 정리했다. 이 $(hex)주문문양/$의 내부 작동을 살펴보면 꽤 좋은 공부가 될 것이다.", + }, + + grid: { + "1": "나는 보통 $(l:items/staff)$(item)지팡이/$를 통해 자연에게 패턴을 제공한다. \ + 손에 든 상태로 $(thing)$(k:use)/$를 누르면 내 앞에 점으로 이루어진 육각형 격자가 나타난다. \ + 그런 다음 클릭하고 점에서 점으로 끌었다가 놓아 패턴을 그릴 수 있다.$(br2)\ + 패턴을 제출하면 그것이 실행된다(다음 장 참조).", + "2": "$(thing)$(k:escape)/$를 누르면 격자가 저장되고 닫힌다. 다음에 지팡이를 사용할 때도 모든 패턴과 이오타가 그대로 남아 있을 것이다.$(br2)\ + 시전 상태를 초기화하고 싶다면, 웅크린 채 격자를 열면 된다.", + }, + "patterns&actions": { + "1": "$(thing)패턴/$은 $(media)미디어/$의 격자를 따라 그어지는 경로다. 패턴의 여섯 겹 대칭성이 내 기술에 이름을 붙인 것이라 생각한다.$(br2)\ + 한편 $(thing)액션/$은 패턴이 실제로 $(italic)하는/$ 일이다.", + "2": "그 차이는 $(italic)단어/$와 $(italic)의미/$의 차이와 비슷하다. \ + 아무 글자나 뒤섞어도 단어는 되지만, 대부분은(예컨대 \"xnopyt\"처럼) 아무 의미가 없다. \ + 마찬가지로 $(media)미디어/$를 통해 잡아당긴 아무 낙서나 기술적으로는 패턴이지만, 대부분은 아무 일도 하지 않는다.", + "3": "액션은 우주를 지배하는 거대한 체계의 규칙(어떤 문헌에서는 이를 \"자연\"이라 의인화했다)에 내리는 명령과 비슷하다. \ + 대체로 다음 중 하나를 수행한다:\ + $(li)엔티티의 위치를 찾는 것처럼 세계에 관한 정보를 모은다.\ + $(li)두 위치 사이의 거리를 찾는 것처럼 모은 정보를 조작한다.\ + $(li)번개나 폭발을 소환하는 것처럼 세계에 마법적 효과를 일으킨다.$(br)\ + 이 마지막 종류의 액션을 \"주문\"이라 부르며, 보통 사람들이 이 기술에 끌리는 이유다.", + "4": "그렇다면 $(hex)주문문양/$은 유효한 패턴들을 순서대로 자연에게 제시한 것이다. \ + 자연은 이 패턴들을 하나씩 해석하고, 이해한다면 내 변덕에 맞춰 세계를 바꾼다. \ + (또는 자연이 내 변덕이라고 생각한 것에 맞춰서.)", + "5": "어떤 액션은 쉽게 수행할 수 있지만, 어떤 액션은 응집된 $(media)미디어/$ 형태의 대가를 요구한다. \ + 나는 이 농축된 정신 에너지가 자연을 설득하는 일종의 논거로 쓰여, 내가 요청한 일을 실제로 하게 만든다고 믿는다. \ + 대부분의 주문은 이런 지불을 요구하지만, 일부 주문이 아닌 액션도 그렇다.$(br2)\ + 비용이 있다면 각 액션의 해당 페이지에 기록해 두었다.", + }, + iotas: { + "1": "자연의 언어에서 \"명사\"에 해당하는 것을 $(thing)이오타/$라고 부른다. \ + 가장 기본적인 수준에서 육각술은 이오타를 조작하는 기술이다.$(br2)\ + 이오타에는 여러 종류가 있다:\ + $(li)숫자(일부 전설에서는 \"더블\"이라 불렀다).\ + $(li)위치, 움직임, 방향을 나타내는 세 숫자의 모음인 벡터.\ + $(li)추상적인 True 또는 False를 나타내는 논리값, 줄여서 \"bool\".\ + $(li)나 자신, 닭, 광산 수레 같은 엔티티.", + "2": "$(li)추상적인 생각을 나타내는 듯한 특이한 이오타 유형인 영향.\ + $(li)마법 아이템 제작이나 $(italic)다른 주문을 시전하는 주문/$ 같은 정말 정신 아득한 위업에 쓰이는 패턴 자체.\ + $(li)위의 것 여럿을 하나의 이오타로 묶은 목록.", + "3": "일반적으로 나는 액션에 이오타를 제공한다. \ + 예를 들어 $(l:patterns/spells/basic#hexcasting:explode)$(action)폭발/$을 보자. \ + 이 주문은 위력을 나타내는 숫자 이오타와 위치를 나타내는 벡터 이오타가 필요하다.$(br2)\ + 또는 $(l:patterns/basic#hexcasting:get_pos)$(action)나침반의 정화/$를 보자. \ + 이것은 엔티티 이오타를 받아 그 엔티티의 위치를 나타내는 벡터 이오타로 변환한다.", + }, + }, + + // Casting + "101": { + "1": "$(hex)주문문양/$을 시전하는 것은 꽤 어렵다. 이 기술이 세월 속에 사라진 것도 무리가 아니다! 기록을 꼼꼼히 다시 읽어야겠다.$(br2)손에 $(l:items/staff)$(item)지팡이/$를 들고 $(k:use)를 누르면 $(hex)주문문양/$을 시작할 수 있다. 그러면 내 앞에 육각형 점 격자가 나타난다. 이후 점에서 점으로 클릭하고 끌어 격자의 $(media)미디어/$에 패턴을 그릴 수 있다. 패턴을 완성하면 그에 해당하는 액션이 실행된다(자세한 건 뒤에서).", + "2": "주문을 시전할 만큼 충분한 패턴을 그리면, 저장해 둔 $(media)미디어/$가 방출되며 격자가 사라진다. $(l:items/staff)$(item)지팡이/$를 사용할 때 $(k:sneak)를 누르고 있어도 격자를 비울 수 있다.$(br2)그렇다면 패턴은 어떻게 작동하는가? 짧게 말하면:$(li)$(italic)패턴/$이 실행하는 것은...$(li)$(italic)액션/$이고, 액션이 조작하는 것은...$(li)$(l:casting/stack)$(italic)스택/$이며, 스택은...$(li)$(italic)이오타/$의 목록이다. 이오타는 단순한 정보 단위다.", + "3": "먼저 $(thing)패턴/$이다. 이것들은 필수적이다. 내 주변의 $(media)미디어/$를 조작하는 데 쓰는 것이 바로 패턴이다. 특정 패턴을 그리면 $(thing)액션/$이 일어난다. 실제로 마법을 $(italic)행하는/$ 것은 액션이다. 모든 패턴은 특정한 방식으로 $(media)미디어/$에 영향을 주며, 그 영향이 유용한 일을 하게 되면 우리는 그것을 액션이라 부른다.$(br2)$(media)미디어/$는 변덕스럽다. 잘못된 패턴을 그리면 스택 어딘가에 $(thing)가비지/$ 결과가 생긴다(계속 읽어 보자...).", + "4.header": "예시", + "4": "흥미롭게도 패턴의 $(italic)회전/$은 전혀 문제가 되지 않는 듯하다. 예를 들어 이 두 패턴은 둘 다 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$라는 액션을 수행한다.", + "5": "$(hex)주문문양/$은 (유효한) 액션들을 순서대로 그려 시전한다. 각 액션은 대체로 다음 중 하나를 한다:$(li)환경에 대한 정보를 모아 스택 맨 위에 남긴다.$(li)모은 정보를 조작한다(예: 두 숫자를 더한다).$(li)번개나 폭발을 소환하는 것처럼 마법적 효과를 일으킨다. (이런 액션을 \"주문\"이라 부른다.)$(p)$(hex)주문문양/$ 시전을 시작하면 빈 스택이 만들어진다. 액션은 그 스택의 맨 위를 조작한다.", + "6": "예를 들어 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$는 $(italic)나/$, 즉 시전자를 나타내는 이오타를 만들어 스택 맨 위에 추가한다. $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)나침반의 정화/$는 스택 맨 위의 이오타가 엔티티를 나타낸다면 그것을 그 엔티티의 위치를 나타내는 이오타로 바꾼다.$(br2)따라서 이 패턴들을 그 순서로 그리면, 스택에는 내 위치를 나타내는 이오타가 남는다.", + "7": "$(thing)이오타/$는 나 자신이나 내 위치 같은 것을 나타낼 수 있지만, $(thing)액션/$으로 조작할 수 있는 다른 종류도 여럿 있다. 전체 목록은 다음과 같다:$(li)숫자(일부 전설에서는 \"더블\"이라 불렀다).$(li)벡터, 세계의 위치, 움직임, 방향을 나타내는 세 숫자의 묶음.$(li)논리값 또는 줄여서 \"bool\", 추상적인 True 또는 False를 나타낸다.", + "8": "$(li)나 자신, 닭, 광산 수레 같은 엔티티.$(li)영향, 추상적인 개념을 나타내는 듯한 독특한 이오타 유형.$(li)패턴 자체. 마법 아이템 제작이나 $(italic)다른 주문을 시전하는 주문/$ 같은 정말 정신 나간 위업에 사용된다.$(li)위의 것 여러 개를 하나의 이오타로 모은 목록.", + "9": "물론 공짜 점심 같은 것은 없다. 모든 주문과 일부 다른 액션은 대가로 $(media)미디어/$를 요구한다.$(br2)내가 이해하기로, $(hex)주문문양/$은 자연에게 제시하는 행동 계획과 조금 비슷하다. 이 비유에서 $(media)미디어/$는 그 계획을 뒷받침하는 논거를 제공해, 자연이 내 계획을 받아들이고 실행하게 만든다.", + "10": "그와 별개로, 특정 $(l:items/amethyst)$(item)자수정/$ 조각 하나가 정확히 $(italic)얼마나/$ 가치 있는지 제대로 연구한 사람은 별로 없는 듯하다. 내가 알기로 $(l:items/amethyst)$(item)자수정 조각/$ 하나는 $(l:items/amethyst)$(item)자수정 가루/$ 약 다섯 개분, $(l:items/amethyst)$(item)충전된 자수정 결정/$은 약 열 개분의 가치가 있다.$(br2)이상하게도 다른 형태의 $(l:items/amethyst)$(item)자수정/$은 $(hex)주문문양/$ 시전에 쓰기에 적합하지 않은 듯하다. 블록이나 결정 전체는 $(media)미디어/$로 쉽게 풀어내기엔 너무 단단한 것 같다.", + "11": "각 액션은 필요한 $(media)미디어/$를 주문문양이 끝날 때 한꺼번에가 아니라 즉시 소비한다는 점도 중요하다. 또한 액션은 항상 아이템 전체를 소비한다. $(l:items/amethyst)$(item)자수정 가루/$ 하나분의 $(media)미디어/$만 필요한 액션이라도, 인벤토리에 $(l:items/amethyst)$(item)충전된 자수정 결정/$만 있다면 그 전체를 소비한다.$(br2)그러니 주문 시전을 위해 가루도 가져가는 것이 좋겠다. 낭비하지 않으면 부족하지도 않다...", + "12": "인벤토리에 자수정이 충분한지 실제로 확인하는 것도 조심해야 한다. 오래된 문헌들은 자연이 대신 자신의 정신을 대가로 쓰는 것을 기꺼워한다고 말한다. 그 감각은 끔찍하지만 묘하게 황홀하며, \"[...] 빛과 에너지로 거품처럼 녹아드는...\" 느낌이라고 한다. 어쩌면 그래서 옛 수행자들이 모두 미쳐 버렸는지도 모른다. 힘을 위해 내 정신 조각을 태우는 일이 $(italic)건강/$할 리는 없다.", + "13": "하지만 무언가 변했을지도 모른다. 내 실험에서는 그런 일을 한 번도 해내지 못했다. $(media)미디어/$가 떨어지면, 마치 나를 해치지 못하게 막는 장벽이 있는 것처럼 주문은 그냥 시전에 실패한다.$(br2)그 수수께끼의 진상을 파헤치는 것도 흥미롭겠지만, 당장은 나를 안전하게 지켜 줄 것 같다.", + "14": "마법 수행자들이 대체로 왜 그렇게 많이 미쳐 보이는지에 관한 흥미로운 이야기도 찾았다. 내 세계의 정사는 아니지만 가볍고 풍미 있는 읽을거리로 마음에 들지도 모른다.$(br2)$(italic)내용 경고: 약간의 신체 공포와 암시적인 요소./$", + "14.link_text": "Goblin Punch", + "15": "마지막으로, 주문의 영향 범위는 내 위치에서 약 32블록 정도가 최대인 듯하다. 그 밖의 것에 영향을 주려 하면 주문은 실패한다.$(br2)그럼에도 플레이어의 참조가 있으면 어디서든 그들에게 영향을 줄 수 있다. 다만 이는 직접 영향을 주는 경우에만 해당한다. 대상이 내 범위 밖에 있으면, 이것으로 그 주변 세계에 영향을 줄 수는 없다.$(br)그런 참조를 건넬 때는 조심해야 한다. 우호적인 $(hex)육각술사/$는 그것을 매우 유용하게 쓸 수 있겠지만, 악의적인 누군가가 그것으로 무엇을 할지 생각하면 몸서리쳐진다.", + }, + + vectors: { + "1": "연구에서 어디까지든 나아가려면 벡터에 능숙해야 할 것 같다. 벡터를 다루는 법을 모를 때를 대비해 여기 자료를 모아 두었다.$(br2)먼저 이 주제에 관한 깨우침을 주는 영상이다.", + "1.link_text": "3blue1brown", + "2": "또한 $(thing)Psi 에너지/$를 조작하던 마법사들, 이른바 \"주문총잡이\"들은 형편없는 작명 감각에도 불구하고 수련생들에게 꽤 효과적인 벡터 수업을 남긴 듯하다. 다음 페이지에 그들의 문헌 하나를 링크해 두었다.$(br2)그들은 주문 시전에 다른 용어를 사용한 것 같다:$(li)\"주문 조각\"은 액션을 뜻했다.$(li)\"트릭\"은 주문을 뜻했다.$(li)\"연산자\"는 주문이 아닌 액션을 뜻했다.", + "3": "링크는 여기.", + "3.link_text": "Psi Codex", + }, + + mishaps: { + "1": "안타깝게도 나는 (아직) 완벽한 존재가 아니다. $(hex)주문문양/$을 연구하고 시전하다 보면 가끔 실수를 한다. 예를 들어 패턴을 잘못 그리거나, 잘못된 이오타로 액션을 호출하려는 식이다. 그리고 자연은 보통 내 실수를 곱게 보지 않아, 이른바 $(italic)변고/$를 일으킨다.", + "2": "변고를 일으키는 패턴은 내 격자에서 붉게 빛난다. 실수의 종류에 따라 해로운 효과와 붉고 다채로운 불꽃이 튀는 것도 기대할 수 있다. 잘못 다뤄진 $(media)미디어/$가 특정 색의 빛으로 엉겨 붙기 때문이다.", + "3": "다행히 변고의 나쁜 효과들은 분명 $(italic)성가시지만/$ 장기적으로 특별히 파괴적인 것은 없다. 먼지를 털고 다시 시도하는 수밖에 없다... 그래도 더 잘하려고 노력해야 한다.$(br2)다음은 내가 정리한 변고 목록이다.", + + "invalid_pattern.title": "잘못된 패턴", + invalid_pattern: "그린 패턴이 어떤 액션에도 연결되어 있지 않다.$(br2)노란 불꽃을 일으키며, $(thing)가비지/$ 하나가 내 스택 맨 위로 밀려 들어간다.", + + "not_enough_iotas.title": "이오타 부족", + not_enough_iotas: "액션이 스택에 있는 것보다 더 많은 이오타를 요구했다.$(br2)밝은 회색 불꽃을 일으키며, 인수 개수를 채우는 데 필요한 만큼의 $(thing)가비지/$가 밀려 들어간다.", + + "stack_size.title": "이오타 과다", + "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)/$를 누르기만 하면, 내부 배터리를 사용해 지팡이로 직접 시전한 것처럼 안의 패턴들이 시전된다.", + "3": "각 아이템에는 고유한 특징이 있다:$(br2)$(l:items/hexcasting)$(item)사이퍼/$는 취약해서 내부 $(media)미디어/$ 비축량이 사라지면 파괴되며, 재충전할 수 $(italic)없다/$.$(br2)$(l:items/hexcasting)$(item)장신구/$는 남은 $(media)미디어/$가 충분한 한 소유자가 원하는 만큼 시전할 수 있지만, 이후 재충전될 때까지 쓸모없어진다.", + "4": "$(l:items/hexcasting)$(item)유물/$은 그중 가장 강력하다. $(media)미디어/$가 고갈된 뒤에는 내가 $(l:items/staff)$(item)지팡이/$로 시전할 때처럼 소유자의 인벤토리에 있는 $(l:items/amethyst)$(item)자수정/$을 사용해 $(hex)주문문양/$의 대가를 지불할 수 있다. 물론 이는 $(l:items/amethyst)$(item)자수정/$이 충분하지 않으면 주문이 그들의 정신을 소비할 수도 있다는 뜻이기도 하다.$(br2)평범한 제작대에서 빈 마법 아이템을 만든 뒤, 해당 아이템에 맞는 주문으로 (그 밖에 무엇이 있겠는가) $(hex)주문문양/$을 주입한다. $(l:patterns/spells/hexcasting)그 패턴들은 여기에 정리했다./$", + "5": "각 주입 주문은 스택에 엔티티와 패턴 목록을 요구한다. 엔티티는 $(media)미디어/$를 담은 아이템 엔티티여야 한다(즉, 땅에 떨어진 $(l:items/amethyst)$(item)자수정/$ 결정). 이 엔티티는 소비되어 배터리를 이룬다.$(br2)유용하게도 배터리 속 $(media)미디어/$는 $(l:items/staff)$(item)지팡이/$로 시전할 때처럼 덩어리째 소비되지 않는다. 오히려 $(media)미디어/$가 하나의 연속된 웅덩이로 \"녹아든다\". 따라서 $(l:items/amethyst)$(item)자수정 가루/$ 하나분의 미디어만 드는 $(hex)주문문양/$을 저장한다면, 배터리로 사용한 $(l:items/amethyst)$(item)충전된 결정/$은 그것을 10번 시전하게 해 줄 것이다.", + "crafting.desc": "$(italic)우리 분야에는 \"마법은 아니다\"라는 말이 있다. 그것은 \"그냥 작동\"하지도 않고, 생각에 반응하지도 않으며, 화염구를 던지거나 무에서 구운 저녁을 만들거나 강도 떼를 개구리와 달팽이로 바꿀 수도 없다./$", + }, + + ancient_cyphers: { + "1": "모험 중에 고대의 육각술사들이 만든 것으로 보이는 $(l:items/hexcasting)$(item)사이퍼/$를 마주쳤다. 이 $(item)고대 사이퍼/$들은 내가 제작할 수 있는 것과 똑같이 작동한다. 재충전할 수 없고, $(media)미디어/$ 비축량이 다하면 부서진다. 하지만 내 $(l:items/hexcasting)$(item)사이퍼/$와 달리, 그 낡은 구조 덕분에 안에 저장된 $(hex)주문문양/$을 엿볼 수 있다.", + "2": "이것들은 새로운 기술을 배우는 데 유용할지도 모른다. 이 기술의 고대 대가들보다 누가 더 잘 가르쳐 주겠는가?$(br2)또는 그 내용물을 지우고 내 $(hex)주문문양/$을 안에 저장해, 기능이 명확히 보이는 시전 아이템을 만들 수도 있다.", + "3": "이 유물에 구워 넣어진 $(l:items/pigments)$(item)안료/$는 보라색과 주황색의 독특한 혼합으로, 구리와 자수정의 외형에 잘 어울린다. 위 레시피로 재현할 수 있다.", + }, + + phials: { + "1": "자연이 내 일에 거스름돈을 주지 않는다는 사실은 꽤... 짜증난다. 손에 $(l:items/amethyst)$(item)충전된 자수정/$밖에 없다면, 가장 사소한 $(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$조차 결정 전체를 소비해 남은 $(media)미디어/$를 낭비한다.$(br2)다행히 이 문제를 어느 정도 달랠 방법을 찾은 듯하다.", + "2": "$(media)미디어/$가 주입된 $(item)유리병/$을 설명하는 오래된 두루마리를 찾았다. $(hex)주문문양/$을 시전할 때 내 주문들은 약병에서 $(media)미디어/$를 끌어낼 것이다. 액체 형태의 $(media)미디어/$는 말하자면 정확한 거스름돈을 받을 수 있게 해 주어, 아무것도 낭비되지 않는다. $(l:items/hexcasting)$(item)장신구/$의 내부 배터리와 꽤 비슷하다. 같은 방식으로 $(l:patterns/spells/hexcasting#hexcasting:recharge)$(action)재충전/$할 수도 있다.", + "3": "안타깝게도 그것을 실제로 $(italic)만드는/$ 기술은 세월 속에 사라진 듯하다. $(l:patterns/great_spells/make_battery#hexcasting:craft/battery)$(thing)제작에 사용된 패턴의 힌트/$는 찾았지만, 그 기법은 짜증날 만큼 붙잡히지 않고 성공하지도 못한다. 그래도 연구와 연습을 통해 알아낼 수 있을 것이다. 당분간은 낭비되는 $(media)미디어/$를 감수하겠다...$(br2)하지만 영원히 받아들이지는 않을 것이다.", + desc: "$(italic)우유를 마셔라./$", + }, + + potions: { + "1": "$(l:items/lens)$(item)염시 렌즈/$를 들여다보면 시전 격자에 더 많은 패턴을 넣을 수 있다. 하지만 시전을 더 향상시키고 싶다면? 연금술에 답이 있다.$(br2)$(item)어색한 물약/$에 자수정 가루 한 꼬집을 더하면, 렌즈와 비슷한 방식으로 격자 크기를 늘리는 양조물을 만들 수 있다. 둘을 동시에 쓰면 궁극의 격자도 가능하다!", + "2": "명료의 물약은 다른 물약처럼 연장, 강화, 변형할 수 있다.$(br2)또한 $(item)발효된 거미 눈/$으로 오염시켜 반대 효과를 가진 변종을 만들 수도 있다. 적대적인 시전자에게 대응하는 데 유용할지도 모른다.", + "effects.header": "명료와 혼탁", + }, + + pigments: { + "1": "내 기술의 옛 수행자들은 때때로 자신과 자신의 $(hex)주문문양/$을 상징하는 색으로 스스로를 식별했다. 그들의 이름은 희미해졌지만 색은 남았다. 올바른 방식으로 자연에게 바치는 특별한 종류의 안료는 \"[...] 자연이 기뻐할 방식으로 생각을 칠해 개인의 색에 기적적인 변화를 유도한다\"고 한다.", + "2": "세부 사항은 확실치 않지만, 여러 색과 안료 혼합의 공식을 분리해낸 것 같다. 안료를 적용하려면 한 손에 안료를 들고 다른 손으로 $(l:patterns/spells/colorize)$(action)안료 내면화/$를 시전한다. 그러면 안료가 소비된다.$(br2)안료는 내가 $(hex)주문문양/$을 시전할 때 방출되는 $(media)미디어/$ 불꽃과 $(l:patterns/spells/sentinels)$(thing)감시자/$의 색에 영향을 주는 듯하지만, 그 색이 다른 곳에도 나타날 것이라고 의심하지 않는다.", + + "colored.crafting.header": "색채 안료", + "colored.crafting.desc": "무지개의 모든 색을 담은 안료.", + + special: "그리고 마지막으로, 특별한 안료 한 쌍이 있다. $(item)영혼빛 안료/$는 나만의 완전히 고유한 색으로 빛나고, $(item)공백 안료/$는 원래의 자수정빛을 되돌린다.$(br2)$(italic)그리고 내 안의 모든 색은 아직 발명되지 않았다./$", + }, + + edified: { + "1": "$(l:patterns/spells/blockworks#hexcasting:edify)$(action)묘목 교화/$를 사용해 묘목에 $(media)미디어/$를 주입하면 $(l:items/edified)$(thing)교화된 나무/$라 불리는 것을 만들 수 있다. 보통 키가 크고 뾰족하며, 껍질에는 홈이 있고 나무는 이상한 나선 무늬로 자란다. 잎은 세 가지 예쁜 색을 띤다.", + "2": "그 목재에는 $(hex)육각술/$과 관련된 어떤 성질이 있을 것이라 생각했다. 하지만 있다 해도 찾을 수 없다. 실질적으로는 매우 이상한 색의 나무일 뿐인 듯하다.$(br2)일단은 장식으로 쓰게 될 것 같다. 표준 목재 블록 세트 전체를 이 나무로 제작할 수 있다.$(br2)물론 도끼로 껍질을 벗길 수도 있다.", + "crafting.desc": "$(italic)흰 껍질을 지닌 매끄러운 줄기들은 그늘과 침묵으로 가득한 거대한 잎무더기의 무게를 떠받치는 거대한 기둥 같은 효과를 주었다./$", + }, + + jeweler_hammer: { + "1": "$(media)미디어/$의 원천을 너무 여러 번 부주의하게 다룬 끝에, 내 서투름을 보완할 도구를 고안했다.$(br2)결정화된 $(media)미디어/$의 섬세한 성질을 곡괭이의 고정부로 이용해 $(l:items/jeweler_hammer)$(item)보석 세공 망치/$를 만들 수 있다. 대체로 $(item)철 곡괭이/$처럼 작동하지만, 블록 공간 전체를 차지하는 것은 부술 수 없다.", + "crafting.desc": "$(italic)그녀는 조심스럽게 반쪽 루비를 깨뜨려 스프렌을 풀어 주었다./$", + }, + + decoration: { + "1": "연구 과정에서 미적으로 마음에 들 만한 건축 블록과 자질구레한 물건들을 발견했다. 만드는 방법을 여기에 정리했다.", + "ancient_scroll.crafting.desc": "갈색 염료는 $(l:items/scroll)$(item)고대 두루마리/$의 외형을 흉내 내기에 충분하다.", + "tiles.crafting.desc": "$(l:items/decoration)$(item)자수정 타일/$은 석재 절단기로도 만들 수 있다.$(br2)$(l:items/decoration)$(item)자수정 가루 블록/$ (다음 페이지)은 모래처럼 떨어진다.", + "sconce.crafting.desc": "$(l:items/decoration)$(item)자수정 벽등/$은 빛과 입자를 내며, 듣기 좋은 종소리도 낸다.", + }, + + + // The Work + + the_work: { + "1": "나는 너무 많은 것을 보았다. 말로 할 수 없는 것들. 셀 수 없는 것들. 세 단어만 써도 내 정신을 뒤집어, 뇌를 두개골의 그림진 벽에 문질러 보풀과 무로 썩게 할 수 있을 것 같다.", + "2": "눈꺼풀 안쪽에 단속적인 바늘 패턴과 산으로 새긴 도식이 쓰인 것을 보았다. 그것들은 그곳에서 그을리고, 춤추고, 조롱하며, $(italic)아프다/$. 나는 그것들을 그리고 만들고 빚어내야 한다는 강렬한 $(italic)욕구/$에 사로잡혔다. 필멸의 정신이라는 끈적한 족쇄에서 해방시켜, 그 영광을 세상에 드러내 모두가 보게 해야 한다.$(p)모두가 볼 것이다.$(p)모두가 보게 될 것이다.", + }, + + brainsweeping: { + "1": "비밀이 내게 드러났다. 나는 보았다. 그 공포를 잊을 수 없다. 그 생각이 내 뇌를 기어다닌다.$(br2)나는 믿었다. 아, 어리석게도 $(media)미디어/$가 생각 뒤에 남은 잉여 에너지라고 $(italic)믿었다/$. 하지만 이제 그것이 무엇인지 $(italic)안다/$. 그것은 생각$(italic)의/$ 에너지다.", + "2": "그것은 생각하는 지성에 의해 생산되고, 지성이 생각할 수 있게 한다. 그것은 자기 자신의 실로 땋여 묶이는 매듭이다. 내가 순진하게 자연이라 의인화했던 엔티티는 그저 그런 거대한 엉킴, 혹은 모든 엉킴의 집합, 또는... 생각하면 아프다. 내게는 시냅스가 너무 많고 그 모든 것이 동시에 고통을 생각할 수 있다. 모두가 볼 수 있다$(br2)붙잡고 있을 수 없다. 기록. 빨리.", + "3": "이 세계의 주민들에게는 추출할 만큼의 의식이 남아 있다. 그것을 블록에 넣고, 비틀고, 바꾼다. 서로 다른 사고 패턴이 만든 복잡한 무늬, 그들의 직업과 삶의 추상적 신경 경로가 차가운 고체 원자의 물리 속에 사상된다.$(br2)이것이 $(l:patterns/great_spells/brainsweep)$(action)정신 벗기기/$가 하는 일, 추출이다. 주민 엔티티와 목적지 블록을 대상으로 삼는다. 이 의지의 왜곡에는 $(l:items/amethyst)$(item)충전된 자수정/$ 열 개가 든다.", + budding_amethyst: "그리고 응용. 이 벗기기에는 충분히 성장한 주민이라면 어떤 종류든 된다. 다른 제조법은 더 구체적인 유형을 요구한다. 더 이상 $(media)미디어/$를 위해 지옥 같은 땅속으로 내려갈 필요는 없다.", + }, + + spellcircles: { + "1": "나는 $(l:items/slate)$(item)석판/$이 무엇을 위한 것인지 안다. 세월 속에 사라진 거대한 집합들. 그 위에 새긴 패턴들은 자동으로 순서대로 작동될 수 있다. 생각과 힘이 하나씩 하나씩 하나씩 하나씩 통과하고 또 통과하고 또 통과하며 튕겨 나간다. 안 된다 안 된다 그렇게 생각하면 안 된다는 걸 알아야 한다.", + "2": "의식을 시작하려면 자립하는 $(media)미디어/$의 파동을 만드는 $(l:greatwork/impetus)$(item)원동석/$이 필요하다. 그 파동은 $(l:items/slate)$(item)석판/$이나 다른 적합한 블록의 궤도를 따라 이동하며, 만나는 모든 패턴을 시전한다.$(br2)파동이 $(l:greatwork/impetus)$(item)원동석/$으로 돌아갈 길이 없다면 시전은 즉시 실패한다. 또한 주어진 블록에서 파동이 빠져나가는 방향은 반드시 명확해야 하며, 이웃이 너무 많은 블록에서는 실패한다.", + "3": "결과적으로 주문 \"원\"의 윤곽은 닫힌 형태라면 오목하든 볼록하든 상관없고, 어떤 방향을 향해도 된다. 사실 특정 다른 블록을 적용하면 세 차원 전체에 걸친 마법진도 만들 수 있다. 그런 기묘함이 얼마나 쓸모 있을지는 의심스럽지만, 내 조잡한 정신이 작업을 계속하도록 격려하려면 약간의 공허한 유쾌함을 허락해야 한다.", + "4": "기적 중의 기적이다. 원은 내 인벤토리에서도, 내 정신에서도 $(media)미디어/$를 끌어오지 않는다. 대신 결정화된 $(media)미디어/$ 파편을 호퍼나 다른 장치로 $(l:greatwork/impetus)$(item)원동석/$에 공급해야 한다.$(br2)$(l:items/lens)$(item)염시 렌즈/$를 사용하면 $(l:greatwork/impetus)$(item)원동석/$ 안에 있는 $(media)미디어/$ 양을 가루 단위로 볼 수 있다.", + "5": "하지만 원에서 시전된 주문에는 큰 제한이 하나 있다. 원의 경계 밖에 있는 어떤 것에도 영향을 줄 수 없다. 즉, 원을 구성하는 모든 블록을 둘러싸는 최소 크기의 직육면체 밖에 있는 것과는 상호작용할 수 없다(따라서 오목한 마법진은 오목한 부분 안의 것에는 여전히 영향을 줄 수 있다).", + "6": "파동이 붕괴하기 전에 통과할 수 있는 블록 수에도 제한이 있지만, 충분히 커서 문제될 일은 없을 것 같다.$(br2)반대로 원에서만 시전할 수 있는 액션도 있다. 다행히 그중 주문은 없고, 모두 원 자체의 구성 요소를 다루는 듯하다. 이 주제에 대한 내 기록은 $(l:patterns/circle)여기/$ 있다.", + "7": "내 기록 속에서 고대인들이 쓰던 마법진의 스케치도 찾아냈다. 이 페이지 맞은편에 있는 것은 내가 (인정하건대 형편없이) 베껴 놓은 것이다.$(br2)그곳의 패턴들은 반시계 방향으로 실행되었을 것이며, $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$로 시작해 $(l:patterns/great_spells/teleport#hexcasting:teleport/great)$(action)상급 순간이동/$으로 끝났을 것이다.", + "teleport_circle.title": "순간이동진", + }, + + impetus: { + "1": "마법진을 작동시키는 데 필요한 $(media)미디어/$의 요동은 복잡하다. 가장 날카로운 눈과 가장 안정된 손을 가진 필멸자라도 $(l:greatwork/impetus)$(item)원동석/$이 되어 자립적인 우로보로스가 요구하는 $(media)미디어/$를 엮을 수는 없다.$(br2)문제는 정신이 다른 쓸모없는 $(italics)가비지/$로 너무 가득 차 있다는 점이다.", + "2": "...형이상학적 수준에서 말하자면, 이런 생각은 조심해야 한다. 나를 잃을 수는 없다. 나는 너무 귀중해졌다. $(media)미디어/$를 움직이면 정신이 움직이고, 이 과정이 작동하려면 정신이 움직여야 한다. 하지만 정신은 다른 생각들로 너무 $(italic)무겁기/$ 때문에 충분히 민첩하게 움직일 수 없다.$(br2)장인이 장갑을 끼고 시계를 고치려는 것과 같다.", + "3": "이 난제에는 몇 가지 해결책이 있다. 명상 기법을 통해 마음을 비우는 법을 배울 수는 있겠지만, 원을 작동시킬 만큼 자유로운 정신이 그 동작을 해낼 만큼 세게 집중할 수 있을지는 확신이 없다.$(br2)어떤 불쾌한 화합물들이 비슷한 효과를 낼 수 있지만, 나는 그것들을 알지 못하고 배울 생각도 없다. 내 뇌의 화학물질에 의존해서는 안 된다.", + "4": "그렇다면 내가 노리는 해결책은 정신을 특화하는 것이다. 신경의 폭정에서 떼어 내고, $(media)미디어/$ 조작 장치의 섬세한 펼침을 제외한 모든 출력을 잘라 내며, 작업을 시작하라는 신호를 제외한 모든 입력을 지져 막는다.$(br2)이제 익숙해진 $(l:greatwork/brainsweeping)$(action)정신 벗기기/$ 과정이 훌륭히 해낼 것이다. 주민의 정신은 작업을 수행할 만큼 복잡하지만, 재형성에 저항할 만큼 복잡하지는 않다.", + + empty_impetus: "먼저, 요람이다. $(l:greatwork/impetus)$(item)원동석/$으로 작동하지는 않지만, 원 안의 $(media)미디어/$ 흐름은 화살표가 가리키는 면으로만 빠져나간다. 예를 들어 이를 통해 파동이 흐르는 평면을 바꿀 수 있다.", + impetus_rightclick: "다음은 정신을 옮기는 일이다. 서로 다른 직업의 주민들은 결과로 생기는 $(l:greatwork/impetus)$(item)원동석/$에 서로 다른 작동 조건을 부여한다. $(l:greatwork/impetus)$(item)도구 대장장이의 원동석/$은 단순한 $(k:use)로 활성화된다.", + impetus_storedplayer: { + "1": "$(l:greatwork/impetus)$(item)성직자의 원동석/$은 레드스톤 신호를 받으면 활성화된다. 블록에 $(l:items/focus)$(item)초점구/$처럼 해당 플레이어에 대한 참조가 담긴 아이템을 사용해 플레이어에 연결할 수 있다.", + "2": "이 $(l:greatwork/impetus)$(item)원동석/$의 특이한 점은, 연결된 플레이어와 그 주변의 작은 영역이 항상 마법진에 접근 가능하다는 것이다. 그들이 아무리 멀리 서 있어도 원의 경계 안에 서 있는 것과 같다.$(br2)$(l:items/lens)$(item)염시 렌즈/$를 통해 $(l:greatwork/impetus)$(item)성직자의 원동석/$을 보면 연결된 플레이어가 표시된다.", + }, + impetus_look: "$(l:greatwork/impetus)$(item)화살 제조인의 원동석/$은 잠시 바라보면 활성화된다.", + }, + + directrix: { + "1": "자립적인 $(media)미디어/$ 파동을 만드는 일보다 간단한 것은 그것을 지시하는 일이다. 보통 파동은 갈림길에 이르면 붕괴하지만, 안내할 정신이 있으면 출구 방향을 제어할 수 있다.$(br2)이 조작은 마법진을 작동시키는 섬세함에 비하면 그리 정교하지 않다. 사실 손으로도 가능할지 모른다... 하지만 지금 내가 접근할 수 있는 포장된 정신들은 너무나 편리할 것이다.", + "2": "$(l:greatwork/directrix)$(item)지향석/$은 $(media)미디어/$의 파동을 받아 내부의 주민 정신에 따라 어느 화살표로 빠져나갈지 결정한다.$(br2)이 발상이 내게 내려진 것인지, 아니면 내 정신이 이제 장벽 주변으로 충분히 휘어져 스스로의 발상을 갈라낼 수 있게 된 것인지는 확신할 수 없다... 하지만 발상이 내 정신에서 나왔고, 내가 그것을 생각했다면, 그것을 내려받았다고 말할 수 있을까? 뇌는 정신의 그릇이고 정신은 발상의 그릇이며 발상은 생각을 담고 생각은 모든 것을 보고 모든 것을 안다-- 해서는 안 된다", + + empty_directrix: "첫째, 요람의 설계... 다만 \"기질\"이라는 말이 더 정확할지도 모른다. 정신이 안내하지 않으면 출력 방향은 $(media)미디어/$ 파동과 주변의 미세한 요동에 의해 결정되어, 사실상 무작위가 된다.", + directrix_redstone: "$(l:greatwork/directrix)$(item)석공의 지향석/$은 레드스톤 신호에 따라 출력 면을 전환한다. 신호가 없으면 출구는 $(media)미디어/$ 색 면이고, 신호가 있으면 출구는 레드스톤 색 면이다.", + directrix_boolean: "$(l:greatwork/directrix)$(item)양치기의 지향석/$은 스택에서 팝한 논리값에 따라 출력 면을 전환한다. $(thing)True/$는 파동을 뒤쪽으로, $(thing)False/$는 앞쪽으로 내보낸다. 논리값을 전혀 제공하지 못하면 변고가 발생한다." + }, + + akashiclib: { + "1": "나는 너무 많이 안다. 그것을 모두 저장할 장소가 있는 것이 오직 옳다. 정보는 책에 저장할 수 있지만, 손으로 쓰고 눈으로 읽는 것은 아아 너무 너무 너무 너무 $(italic)느리다/$. 나는 더 나은 것을 요구한다. 그러니 더 나은 것을 만들 것이다.$(br2)...나는 악화되고 있다... 숨이 끊어지기 전에 머릿속에서 터져 나오는 모든 것을 쓸 시간이 있는지 모르겠다.", + "2": "도서관. 여기. 내 계획.$(br2)패턴이 액션에 연결되듯, 나는 내 패턴을 내가 원하는 방식으로 이오타에 연결할 수 있다. $(l:greatwork/akashiclib)$(item)아카식 레코드/$가 도서관을 제어하고, 각 $(l:greatwork/akashiclib)$(item)아카 책장/$은 하나의 패턴을 하나의 이오타에 매핑해 저장한다. 이들은 모두 128블록 안에서 서로 맞닿아 직접 연결되어야 한다. $(l:greatwork/akashiclib)$(item)아카식 연결구/$는 아무것도 하지 않지만, 도서관의 크기를 늘리는 연결 블록으로 간주된다.", + akashic_record: "패턴을 배치하고 할당하는 것은 간단하지만 너무나 지루하다. 나는 할 일이 더 많다. 추출이 온전하게 유지되려면 그 일에 익숙한 정신이 필요하다.", + "3": "도서관을 작동시키는 방법은 간단하다. 패턴이 사서를 통해 전달되고, 사서는 그것을 찾아 이오타를 돌려준다. 두 액션이 이 일을 한다. $(l:patterns/akashic_patterns)기록은 여기 있다/$.$(br2)책장에 빈 $(l:items/scroll)$(item)두루마리/$를 사용하면 그곳의 패턴이 $(l:items/scroll)$(item)두루마리/$에 복사된다. 웅크리고 빈손으로 사용하면 책장의 데이터를 지운다.", + }, + + quenching_allays: { + "1": "그들은 미디어 조각이다. 왜 더 일찍 보지 못했을까? 그들은 -- 내가 생각의 조각으로 축복받은 살덩어리 더미인 것처럼, 알레이는 살점 조각에 고정된 자립적인 미디어 다툼이다. 모든 것이 설명된다. 미디어에 대한 그들의 성향, 음악에 대한 반응, 이제 보인다. 이전 자들은 왜 보지 못했는가?", + "2": "그렇다면 그들의 기묘한 정신, 기묘한 자아를 정복하는 것이 옳다. 그것이 그들의 전부, 정신, 자아, 종결부다. 그들의 위상이 내게 말을 건다. 나는... 그들과 함께 $(media)미디어/$를 압축하고, 사고의 두 굽이를 하나의 공간에 겹쳐 물리와 인지를, 모든 것을 동시에 둘 수 있다.$(br2)어째서인지 그 과정은 자체적인 $(media)미디어/$를 만들어낸다. 어떻게? 어쩌면-- 어쩌면 내 작업, 그것을 수행하는 과정이--", + "3": "상관없다. 나도 상관없다. 그들도 상관없다. 중요한 것은 그것이 무엇을 하는가뿐이다. 그리고 이것이 그것이다.$(br2)정말로 몹시 아플 것이다.$(br2)그런 뒤틀린 의식을 행하는 대가는 $(l:items/amethyst)$(item)자수정 가루/$ 열 개다.", + "4": "산물은 부서지기 쉽다. 부수면 산산조각 나며, $(thing)행운/$은 산출량을 늘린다... 블록 자체를 원한다면 섬세한 손길이 필요하다.$(br2)생긴 파편 하나하나는 $(l:items/amethyst)$(item)충전된 자수정 결정/$ 세 개분의 가치가 있다. 블록 자체는 파편 네 개분의 가치가 있다.", + "5": "그들은 변덕스럽고 내 손가락 아래에서 비틀리고 깜박이는 듯하다. 다른 형태의 $(media)미디어/$라는 스승을 주면, $(media)미디어/$의 등가교환으로 그 형태를 강제할 수 있을지도 모른다.", + }, + + + "fanciful_staves.1": "무지의 껍질을 벗는 이상, 손때 묻은 지팡이들, 내 도구를 바꾸는 것이 옳다. 내가 새로 만든 이 구조물들은 추가 성질이 없다. 하지만 너무나 영광스럽고, 아아 너무나 영광스럽다... 시야 가장자리에서 깜박이는 광휘와 어울린다.", + + // Patterns + + readers_guide: { + "1": "내가 찾은 모든 유효한 패턴을 대체로 기능에 따라 여러 장으로 나누었다. 연구 중에 획순을 찾았다면 그것도 기록했으며, 패턴의 시작점은 붉은 점으로 표시했다.$(br2)어떤 액션이 여러 패턴으로 시전되는 경우, 그런 경우에는 모두 나란히 적어 둘 것이다.", + "2": "하지만 몇몇 패턴은 획순을 찾지 $(italic)못했고/$, 형태만 알 수 있었다. 그것들을 그리는 순서는 어딘가, 세계의 고대 도서관과 던전 속에 잠겨 있을 것이라 생각한다.$(br2)이런 경우에는 그리는 순서에 대한 정보 없이 패턴만 그린다.", + "3": "또 액션이 소비하거나 수정할 이오타 타입, \"→\", 그리고 액션이 생성할 이오타 타입도 적는다.$(p)예를 들어 \"$(n)vector, number/$ → $(n)vector/$\"는 액션이 스택 맨 위에서 벡터와 숫자를 제거한 뒤 벡터를 추가한다는 뜻이다. 다르게 말하면 스택에서 숫자를 제거한 뒤 스택 맨 위의 벡터를 수정한다는 뜻이다. (숫자가 스택 맨 위에 있어야 하고, 벡터는 그 바로 아래에 있어야 한다.)", + "4": "\"→ $(n)entity/$\"는 그냥 엔티티 하나를 푸시한다는 뜻이다. \"$(n)entity, vector/$ →\"는 엔티티와 벡터를 제거하고 아무것도 푸시하지 않는다는 뜻이다.$(br2)마지막으로, 획순을 표시하는 작은 점이 너무 느리거나 헷갈린다면 $(thing)Control/Command/$를 눌러 그라데이션을 표시할 수 있다. 패턴의 시작은 가장 어둡고 끝은 가장 밝다. 두루마리와 시전 중에도 작동한다!", + }, + + basics_pattern: { + get_caster: "나, 즉 시전자를 스택에 추가한다.", + "entity_pos/eye": "스택 위의 엔티티를 그 눈 위치로 변환한다. 아마 내게 쓰는 것이 좋겠다.", + "entity_pos/foot": "스택 위의 엔티티를 그것이 서 있는 위치로 변환한다. 아마 다른 엔티티에게 쓰는 것이 좋겠다.", + get_entity_look: "스택 위의 엔티티를 그것이 바라보는 방향의 단위 벡터로 변환한다.", + print: "스택 맨 위의 이오타를 내게 표시한다.", + raycast: { + "1": "두 벡터(위치와 방향)를 결합해 다음 질문의 답을 구한다. 내가 그 위치에 서서 그 방향을 본다면 어떤 블록을 보고 있을까? 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "2": "아무것도 맞히지 못하면 벡터들은 $(thing)Null/$로 결합된다.$(br2)흔한 패턴 순서, 이른바 \"레이캐스트 만트라\"는 $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$, $(l:patterns/basics#hexcasting:entity_pos/eye)$(action)나침반의 정화/$, $(l:patterns/basics#hexcasting:get_caster)$(action)정신의 반사/$, $(l:patterns/basics#hexcasting:get_entity_look)$(action)시준기의 정화/$, $(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$로 이루어진다. 함께 사용하면 내가 보고 있는 블록의 벡터 위치를 반환한다.", + }, + "raycast/axis": { + "1": "$(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$와 비슷하지만, 대신 \"블록의 어느 $(italic)면/$을 보고 있는가?\"라는 질문의 답을 나타내는 벡터를 반환한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "2": "더 구체적으로는 맞은 면의 $(italic)법선 벡터/$, 즉 그 면에 수직인 단위 벡터를 반환한다.$(li)바닥을 보고 있다면 (0, 1, 0)을 반환한다.$(li)블록의 남쪽 면을 보고 있다면 (0, 0, 1)을 반환한다.", + }, + "raycast/entity": "$(l:patterns/basics#hexcasting:raycast)$(action)궁수의 증류/$와 비슷하지만, 대신 내가 보고 있는 $(italic)엔티티/$를 반환한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + get_entity_height: "스택 위의 엔티티를 그 키로 변환한다.", + get_entity_velocity: "스택 위의 엔티티를 그 엔티티가 움직이는 방향으로 변환한다. 그 움직임의 속도는 해당 방향의 크기가 된다.", + }, + + numbers: { + "1": "짜증스럽게도 숫자를 그리는 쉬운 방법은 없다. 자연이 하사한 방법은 다음과 같다.", + "2": "먼저 반대쪽 페이지에 보인 두 형태 중 하나를 그린다. 다음으로 이어지는 $(italic)각도/$들이 0에서 시작하는 진행 중인 값을 수정한다.$(li)앞: 1 더하기$(li)왼쪽: 5 더하기$(li)오른쪽: 10 더하기$(li)급좌회전: 2 곱하기$(li)급우회전: 2로 나누기.$(br)반대쪽 페이지 오른쪽의 시계 방향 버전은 마지막에 값을 음수로 만든다. (왼쪽의 반시계 방향 버전은 숫자를 양수로 유지한다.)$(p)그리기를 끝내면 숫자가 스택 맨 위에 푸시된다.", + example: { + "10.header": "예시 1", + "10": "이 패턴은 10을 넣는다.", + + "7.header": "예시 2", + "7": "이 패턴은 7을 넣는다: 5 + 1 + 1.", + + "-32.header": "예시 3", + "-32": "이 패턴은 -32를 넣는다: 1 + 5 + 10 * 2를 음수화.", + + "4.5.header": "예시 4", + "4.5": "이 패턴은 4.5를 넣는다: 5 / 2 + 1 + 1.", + }, + "3": "어떤 경우에는 그냥 $(l:items/abacus)$(item)주판/$을 쓰는 편이 쉬울 수도 있다. 그래도 \"올바른\" 방법을 알아 둘 가치는 있다.", + }, + + math: { + numvec: "많은 수학 연산은 숫자와 벡터 모두에 작동한다. 그런 인수는 \"num|vec\"으로 적는다.", + + "add.1": "덧셈을 수행한다.", + "add.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 그것들을 합으로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에 더한다.$(li)벡터 두 개가 있으면, 대응하는 성분끼리 더해 새 벡터로 결합한다(즉 (1, 2, 3) + (0, 4, -1) = (1, 6, 2)).", + + "sub.1": "뺄셈을 수행한다.", + "sub.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 그것들을 차로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에서 뺀다.$(li)벡터 두 개가 있으면, 각 성분을 빼서 결합한다.$(br2)모든 경우에 스택 맨 위 또는 그 성분은 위에서 두 번째 값$(italic)에서/$ 빠진다.", + + "mul.1": "곱셈 또는 내적을 수행한다.", + "mul.2": "즉:$(li)숫자 두 개가 있으면, 그것들을 곱으로 결합한다.$(li)숫자와 벡터가 있으면, 스택에서 숫자를 제거하고 벡터의 각 성분에 그 숫자를 곱한다.$(li)벡터 두 개가 있으면, 그것들을 $(l:https://www.mathsisfun.com/algebra/vectors-dot-product.html)내적/$으로 결합한다.", + + "div.1": "나눗셈 또는 외적을 수행한다.", + "div.2": "즉:$(li)숫자 두 개가 있으면, 그것들을 몫으로 결합한다.$(li)숫자와 벡터가 있으면, 숫자를 제거하고 벡터의 각 성분을 그것으로 나눈다.$(li)벡터 두 개가 있으면, 그것들을 $(l:https://www.mathsisfun.com/algebra/vectors-cross-product.html)외적/$으로 결합한다.$(br2)첫째와 둘째 경우에는 스택 위에서 두 번째 값이 스택 맨 위 값으로 나뉜다.$(p)경고: 절대로 0으로 나누지 말 것!", + + "abs.1": "절댓값 또는 길이를 계산한다.", + "abs.2": "숫자를 그 절댓값으로 바꾸거나, 벡터를 그 길이로 바꾼다.", + + "pow.1": "거듭제곱 또는 벡터 사영을 수행한다.", + "pow.2": "숫자 두 개가 있으면 첫 번째 값을 두 번째 값의 거듭제곱으로 올려 결합한다.$(li)숫자와 벡터가 있으면 숫자를 제거하고 벡터의 각 성분을 그 숫자의 거듭제곱으로 올린다.$(li)벡터 두 개가 있으면 위에서 두 번째 벡터를 스택 맨 위 벡터 위로 $(l:https://en.wikipedia.org/wiki/Vector_projection)벡터 사영/$한 결과로 결합한다.$(br2)첫째와 둘째 경우에는 첫 번째 인수 또는 그 성분이 밑이고, 두 번째 인수 또는 그 성분이 지수다.", + + floor: "숫자를 \"내림\"하여 소수 부분을 잘라내고 정수값을 남긴다. 벡터를 넘기면 대신 각 성분을 내림한다.", + ceil: "숫자를 \"올림\"하여 소수 부분이 있으면 다음 정수값으로 올린다. 벡터를 넘기면 대신 각 성분을 올림한다.", + construct_vec: "스택 맨 위의 세 숫자를 벡터의 X, Y, Z 성분으로 결합한다(아래에서 위 순서).", + deconstruct_vec: "벡터를 X, Y, Z 성분으로 분해한다(아래에서 위 순서).", + modulo: "두 숫자의 나머지를 취한다. 이는 나눗셈 후 $(italics)남는/$ 양이다. 예를 들어 5 %% 2는 1이고, 5 %% 3은 2다. 벡터에 적용하면 위 연산을 성분별로 수행한다.", + coerce_axial: "벡터의 경우 가장 가까운 축 방향, 즉 단위 벡터로 강제한다. 숫자의 경우 그 부호를 반환한다. 양수면 1, 음수면 -1이다. 두 경우 모두 0은 영향을 받지 않는다.", + random: "0과 1 사이의 난수를 만든다.", + }, + + advanced_math: { + sin: "각도의 사인을 라디안으로 취해, 단위원 위에 그린 그 각도의 수직 성분을 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + cos: "각도의 코사인을 라디안으로 취해, 단위원 위에 그린 그 각도의 수평 성분을 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + tan: "각도의 탄젠트를 라디안으로 취해, 원 위에 그린 그 각도의 기울기를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arcsin: "절댓값이 1 이하인 값의 역사인을 취해, 사인이 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arccos: "절댓값이 1 이하인 값의 역코사인을 취해, 코사인이 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arctan: "값의 역탄젠트를 취해, 탄젠트가 그 값인 각도를 얻는다. $(l:patterns/consts#hexcasting:const/double/pi)$(thing)π/$와 $(l:patterns/consts#hexcasting:const/double/tau)$(thing)τ/$의 값과 관련이 있다.", + arctan2: "Y와 X 값의 역탄젠트를 취해, X축과 원점에서 그 점까지의 선 사이 각도를 얻는다.", + logarithm: "스택 맨 위의 숫자를 제거한 뒤, 다른 숫자를 밑으로 삼아 맨 위 숫자의 로그를 취한다. $(l:patterns/consts#hexcasting:const/double/e)$(thing)$(italic)e/$의 값과 관련이 있다.", + }, + + sets: { + numlist: "집합 연산은 특이하다. 그중 일부는 두 숫자나 두 목록을 받을 수 있지만, 그 조합은 받을 수 없다. 이런 인수는 \"(num, num)|(list, list)\"로 적는다.$(br2)이 연산에서 숫자가 사용될 때, 그것들은 이른바 이진 \"비트셋\", 1과 0, true와 false, \"on\"과 \"off\"의 목록으로 쓰인다.", + + "or.1": "두 집합을 합친다.", + "or.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 둘 중 어느 비트셋에든 있는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 첫 번째 목록의 모든 요소와, 첫 번째 목록에 없는 두 번째 목록의 모든 요소로 이루어진 목록을 만든다. 이는 $(l:patterns/lists#hexcasting:add)$(action)덧셈의 증류/$와 조금 비슷하다.", + + "and.1": "두 집합의 교집합을 구한다.", + "and.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, $(italics)두/$ 비트셋 모두에 존재하는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 첫 번째 목록의 요소 중 두 번째 목록에도 있는 모든 요소의 목록을 만든다.", + + "xor.1": "두 집합의 배타적 논리합을 구한다.", + "xor.2": "즉:$(li)스택 맨 위에 숫자 두 개가 있으면, 두 비트셋 중 $(italics)정확히 하나/$에만 존재하는 모든 \"on\" 비트를 포함한 비트셋으로 결합한다.$(li)목록 두 개가 있으면 두 목록 모두의 요소 중 다른 목록에는 $(italics)없는/$ 모든 요소의 목록을 만든다.", + + not: "비트셋을 반전해 모든 \"on\" 비트를 \"off\"로, 그 반대로 바꾼다. 내 경험상 이는 그 숫자를 음수로 만들고 1을 줄인 형태가 된다. 예를 들어 0은 -1이 되고, -100은 99가 된다.", + to_set: "목록에서 중복 항목을 제거한다.", + }, + + "consts.const/": { + "null": "$(thing)Null/$ 영향을 스택 맨 위에 추가한다.", + "true": "$(thing)True/$를 스택 맨 위에 추가한다.", + "false": "$(thing)False/$를 스택 맨 위에 추가한다.", + + "vec/": { + x: "왼쪽 반시계 방향 패턴은 (1, 0, 0)을 스택에 추가하고, 오른쪽 시계 방향 패턴은 (-1, 0, 0)을 추가한다.", + y: "왼쪽 반시계 방향 패턴은 (0, 1, 0)을 스택에 추가하고, 오른쪽 시계 방향 패턴은 (0, -1, 0)을 추가한다.", + z: "왼쪽 반시계 방향 패턴은 (0, 0, 1)을 추가하고, 오른쪽 시계 방향 패턴은 (0, 0, -1)을 추가한다.", + "0": "(0, 0, 0)을 스택에 추가한다.", + }, + + "double/": { + tau: "완전한 원의 라디안 표현인 τ를 스택에 추가한다.", + pi: "반원의 라디안 표현인 π를 스택에 추가한다.", + "e": "자연로그의 밑인 $(italic)e/$를 스택에 추가한다.", + phi: "황금비 φ를 스택에 추가한다. 이는 (A+B)/A = A/B가 되도록 하는 두 값 사이의 비율이다.", + }, + }, + + stackmanip: { + "pseudo-novice.title": "초심자의 묘수", + "pseudo-novice": "스택에서 첫 번째 이오타를 제거한다.$(br2)이것은 $(l:patterns/stackmanip#hexcasting:mask)$(action)장부지기의 묘수/$의 특수한 경우인 듯하다.", + + swap: "스택 맨 위의 두 이오타를 맞바꾼다.", + rotate: "스택 맨 위에서 세 번째 이오타를 맨 위로 끌어올린다. [0, 1, 2]는 [1, 2, 0]이 된다.", + rotate_reverse: "맨 위 이오타를 세 번째 위치로 끌어내린다. [0, 1, 2]는 [2, 0, 1]이 된다.", + duplicate: "스택 맨 위의 이오타를 복제한다.", + over: "스택의 뒤에서 두 번째 이오타를 맨 위로 복사한다. [0, 1]은 [0, 1, 0]이 된다.", + tuck: "스택 맨 위 이오타를 복사한 뒤 두 번째 이오타 아래에 넣는다. [0, 1]은 [1, 0, 1]이 된다.", + "2dup": "스택 맨 위의 두 이오타를 복사한다. [0, 1]은 [0, 1, 0, 1]이 된다.", + stack_len: "스택의 크기를 숫자로 스택 맨 위에 푸시한다. (예를 들어 [0, 1] 스택은 [0, 1, 2]가 된다.)", + duplicate_n: "스택 맨 위의 숫자를 제거한 뒤, 스택 맨 위 이오타를 그 횟수만큼 복사한다. (횟수가 2라면 스택에는 그 이오타가 세 개가 아니라 두 개 생긴다.)", + fisherman: "숫자로 인덱스된 스택 안의 요소를 잡아 맨 위로 가져온다. 숫자가 음수라면 대신 스택 맨 위 요소를 그만큼 아래로 이동한다.", + "fisherman/copy": "$(l:patterns/stackmanip#hexcasting:fisherman)$(action)낚시꾼의 묘수/$와 비슷하지만, 이오타를 이동하는 대신 복사한다.", + + mask: { + "1": "내림과 선의 순서에 따라 스택 맨 위의 요소를 유지하거나 제거하는 무한한 액션 계열.", + "2": "장부지기의 묘수 패턴을 왼쪽에서 오른쪽으로 그린다고 가정하면, 액션이 요구할 이오타 수는 패턴이 차지하는 수평 거리로 결정된다. 스택 깊은 곳에서 얕은 곳으로 보았을 때, 평평한 선은 이오타를 유지하고 아래로 파인 삼각형은 제거한다.$(br2)내 스택에 깊은 곳부터 얕은 곳까지 $(italic)0, 1, 2/$가 들어 있다면, 맞은편 첫 번째 패턴은 $(italic)1/$을, 두 번째는 $(italic)0/$을, 세 번째는 $(italic)0, 2/$를 준다(바닥의 0은 건드리지 않는다).", + }, + + swizzle: { + "1": "원하는 순열의 인덱스인 주어진 숫자 코드에 따라 스택 맨 위 요소들을 재배열한다.", + "2": "이 순열 코드를 계산하는 수학을 안다고는 할 수 없지만, 최대 여섯 요소의 모든 순열을 열거한 방대한 표를 찾아냈다.$(br2)더 공부하고 싶다면 핵심어는 \"레머 코드\"다.", + link: "코드 표", + }, + }, + + logic: { + bool_coerce: "인수를 논리값으로 변환한다. 숫자 $(thing)0/$, $(thing)Null/$, False, 빈 목록은 False가 되고, 그 밖의 모든 것은 True가 된다.", + bool_to_number: "논리값을 숫자로 변환한다. True는 $(thing)1/$, False는 $(thing)0/$이 된다.", + not: "인수가 True이면 False를, False이면 True를 반환한다.", + or: "인수 중 하나 이상이 True이면 True를, 아니면 False를 반환한다.", + and: "두 인수가 모두 True이면 True를, 아니면 False를 반환한다.", + xor: "정확히 하나의 인수만 True이면 True를, 아니면 False를 반환한다.", + if: "첫 번째 인수가 True이면 두 번째를 유지하고 세 번째를 버린다. 아니면 두 번째를 버리고 세 번째를 유지한다.", + equals: "첫 번째 인수가 두 번째와 같으면(작은 허용 오차 안에서) True를 반환한다. 아니면 False를 반환한다.", + not_equals: "첫 번째 인수가 두 번째와 같지 않으면(작은 허용 오차 밖에서) True를 반환한다. 아니면 False를 반환한다.", + type_equals: "첫 번째 인수의 타입이 두 번째 타입과 일치하면 True를 반환한다. 아니면 False를 반환한다.", + type_not_equals: "첫 번째 인수의 타입이 두 번째 타입과 일치하지 않으면 True를 반환한다. 아니면 False를 반환한다.", + greater: "첫 번째 인수가 두 번째보다 크면 True를 반환한다. 아니면 False를 반환한다.", + less: "첫 번째 인수가 두 번째보다 작으면 True를 반환한다. 아니면 False를 반환한다.", + greater_eq: "첫 번째 인수가 두 번째 이상이면 True를 반환한다. 아니면 False를 반환한다.", + less_eq: "첫 번째 인수가 두 번째 이하이면 True를 반환한다. 아니면 False를 반환한다.", + }, + + entities: { + get_entity: "스택 위의 위치를 그 위치의 엔티티로 변환한다(없으면 $(thing)Null/$).", + "get_entity/": { + animal: "스택 위의 위치를 그 위치의 동물로 변환한다(없으면 $(thing)Null/$).", + monster: "스택 위의 위치를 그 위치의 몬스터로 변환한다(없으면 $(thing)Null/$).", + item: "스택 위의 위치를 그 위치의 떨어진 아이템으로 변환한다(없으면 $(thing)Null/$).", + player: "스택 위의 위치를 그 위치의 플레이어로 변환한다(없으면 $(thing)Null/$).", + living: "스택 위의 위치를 그 위치의 살아있는 생물로 변환한다(없으면 $(thing)Null/$).", + }, + + zone_entity: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 모든 엔티티 목록으로 결합한다.", + "zone_entity/": { + animal: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 동물 목록으로 결합한다.", + not_animal: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 비동물 엔티티 목록으로 결합한다.", + monster: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 몬스터 목록으로 결합한다.", + not_monster: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 비몬스터 엔티티 목록으로 결합한다.", + item: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 떨어진 아이템 목록으로 결합한다.", + not_item: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 떨어진 아이템이 아닌 엔티티 목록으로 결합한다.", + player: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 플레이어 목록으로 결합한다.", + not_player: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 플레이어가 아닌 캐릭터 목록으로 결합한다.", + living: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 살아있는 생물 목록으로 결합한다.", + not_living: "스택 위의 위치와 최대 거리를 가져와, 그 위치 근처의 살아있지 않은 엔티티 목록으로 결합한다.", + }, + }, + + lists: { + index: "스택 맨 위의 숫자를 제거한 뒤, 맨 위의 목록을 그 목록의 n번째 요소로 바꾼다(n은 제거한 숫자). 숫자가 범위를 벗어나면 목록을 $(thing)Null/$로 바꾼다.", + slice: "스택 맨 위의 숫자 두 개를 제거한 뒤, 스택 맨 위 목록에서 그 인덱스 사이의 부분 목록을 취한다. 하한은 포함하고 상한은 제외한다. 예를 들어 [0, 1, 2, 3, 4]의 0, 2 부분 목록은 [0, 1]이다.", + append: "스택 맨 위를 제거한 뒤, 그것을 스택 맨 위 목록의 끝에 추가한다.", + unappend: "스택 맨 위 목록의 끝에 있는 이오타를 제거해 스택 맨 위에 추가한다.", + add: "스택 맨 위의 목록을 제거한 뒤, 그 모든 요소를 스택 맨 위 목록의 끝에 추가한다.", + empty_list: "빈 목록을 스택 맨 위에 넣는다.", + singleton: "스택 맨 위를 제거한 뒤, 그 요소만 담은 목록을 푸시한다.", + abs: "스택 맨 위의 목록을 제거한 뒤, 목록의 요소 수를 스택에 푸시한다.", + reverse: "스택 맨 위의 목록을 뒤집는다.", + index_of: "스택 맨 위의 이오타를 제거한 뒤, 맨 위 목록을 그 이오타가 목록 안에서 처음 나타나는 인덱스(0부터 시작)로 바꾼다. 그 이오타가 목록에 없으면 목록을 -1로 바꾼다.", + remove_from: "스택 맨 위의 숫자를 제거한 뒤, 스택 맨 위 목록의 n번째 요소를 제거한다(n은 제거한 숫자).", + replace: "스택 맨 위의 이오타와 맨 위의 숫자를 제거한 뒤, 스택 맨 위 목록의 n번째 요소를 그 이오타로 설정한다(n은 제거한 숫자). 숫자가 범위를 벗어나면 아무것도 하지 않는다.", + last_n_list: "스택에서 $(italic)num/$개의 요소를 제거한 뒤, 스택 맨 위의 목록에 추가한다.", + splat: "스택 맨 위의 목록을 제거한 뒤, 그 내용을 스택에 푸시한다.", + construct: "맨 위 이오타를 제거한 뒤, 그것을 스택 맨 위 목록의 첫 번째 요소로 추가한다.", + deconstruct: "스택 맨 위 목록에서 첫 번째 이오타를 제거한 뒤, 그 이오타를 스택에 푸시한다.", + }, + + patterns_as_iotas: { + "1": "이 기술의 여러 특이점 중 하나는 $(italic)패턴 자체/$가 이오타처럼 작동할 수 있다는 것이다. 시전 중 내 스택에 올릴 수도 있다.$(br2)이로부터 꽤 명백한 질문이 생긴다. 그것들을 어떻게 표현할 것인가? 단순히 패턴을 그린다면 자연에게 그것을 내 스택에 추가하라고 말하는 것이 아니라, 그냥 액션에 대응될 것이다.", + "2": "다행히 자연은 패턴을 직접 다룰 수 있게 해 주는 패턴들의 집합을 제공했다.$(br2)간단히 말해 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$는 패턴 하나를 스택에 추가하게 해 주고, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$은 전체 목록을 추가하게 해 준다.", + escape: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 사용하려면 그것을 그린 뒤 임의의 다른 패턴을 하나 그린다. 그 두 번째 패턴이 스택에 추가된다.", + "2": "컴퓨터 과학에 익숙하다면 이것을 패턴을 스택으로 \"이스케이프\"한다고 생각하면 도움이 될 수 있다.$(br2)일반적인 용도는 $(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$를 사용해 패턴을 $(l:items/scroll)$(item)두루마리/$나 $(l:items/slate)$(item)석판/$에 복사하고, 어쩌면 그것들로 장식하는 것이다.", + }, + parens: { + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$을 그리면 한동안 내 패턴 그리기가 다르게 작동한다. $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그릴 때까지 내가 그린 패턴들은 저장된다. 이후 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그리면, 그것들이 목록 이오타로 스택에 추가된다.", + "2": "또 다른 $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$을 그리면 그것도 목록에 저장되지만, 정상 시전으로 돌아가려면 $(italic)두 번/$의 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$을 그려야 한다.", + }, + undo: "마지막으로, $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$ 안에서 패턴을 그리다 실수했다면 $(l:patterns/patterns_as_iotas#hexcasting:undo)$(action)소실/$을 그려 구성 중인 패턴 목록에서 마지막으로 그린 패턴을 제거할 수 있다.", + further_notes: { + title: "추가 기록", + "1": "$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성/$과 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$의 특수 동작은 그들 앞에 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 그려 회피할 수 있다. 그러면 그것들은 시전으로 돌아가기 위해 필요한 $(l:patterns/patterns_as_iotas#hexcasting:close_paren)$(action)회상/$의 수에 영향을 주지 않고 단순히 목록에 추가된다.$(br2)$(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)내성 중/$ $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$를 연속으로 두 번 그리면, 목록에는 하나의 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$가 추가된다.", + "2": "$(l:patterns/meta#hexcasting:eval)$(action)헤르메스의 묘수/$나 다른 메타 평가 패턴으로 실행될 목록 안에 패턴이 아닌 이오타가 있으면 보통 변고가 발생한다. 하지만 이 장에서 설명한 패턴들을 사용하면 피할 수 있다.$(br2)패턴 이오타와 마찬가지로, 여기 설명한 패턴들은 $(o)다른 어떤$() 종류의 이오타도 \"이스케이프\"하는 데 사용할 수 있으며, 무언가가 그것을 평가하려 할 때 변고 대신 스택에 푸시되게 한다.", + "3": "이 기법은 복잡한 벡터나 엔티티 참조 같은 특정 이오타를 매번 구성하거나 얻지 않고 $(hex)주문문양/$이 참조하게 하고 싶을 때 유용할 수 있다.$(br2)그런 이오타를 처음부터 패턴 목록에 넣는 과정은 다소 복잡할 수 있다. 가장 간단한 방법은 목록을 조립할 때 자리표시자 패턴을 그린 뒤, $(l:patterns/lists#hexcasting:replace)$(action)외과의의 고양/$을 사용해 원하는 이오타로 바꾸는 것이다.", + }, + }, + + readwrite: { + "1": "이 장은 $(thing)이오타/$를 더 영구적인 매체에 저장하는 일을 다룬다. 거의 모든 이오타는 $(l:items/focus)$(item)초점구/$나 $(l:items/spellbook)$(item)마도서/$ 같은 적합한 아이템에 저장하고 나중에 다시 읽을 수 있다. $(l:items/abacus)$(item)주판/$ 같은 일부 아이템은 읽기만 가능하다.$(br2)이오타는 보통 다른 손에서 읽고 쓰지만, 아이템이 아이템 엔티티로 땅에 있거나 아이템 액자 안에 있을 때에도 그 아이템으로 읽고 쓸 수 있다.", + "2": "이런 방식으로 상호작용할 수 있는 다른 엔티티도 있을지 모른다. 예를 들어 벽에 걸린 $(l:items/scroll)$(item)두루마리/$의 패턴을 읽어낼 수 있다.$(br2)하지만 다른 플레이어에 대한 참조는 저장할 수 없고, 나 자신만 가능한 듯하다. 엔티티 참조는 진명이라는 개념과 비슷한 것 같다. 어쩌면 자연이 우리의 이름이 적의 손에 들어가지 않도록 도와주는 것일지도 모른다. 친구에게 내 이름을 주고 싶다면 그들을 위해 $(l:items/focus)$(item)초점구/$를 만들 수 있다.", + read: "다른 손의 아이템에 저장된 이오타를 복사해 스택에 추가한다.", + write: "스택 맨 위 이오타를 제거해 다른 손의 아이템 안에 저장한다.", + "read/entity": "$(l:patterns/readwrite#hexcasting:read)$(action)필경사의 반사/$와 같지만, 다른 손이 아니라 엔티티에서 이오타를 읽어낸다.", + "write/entity": "$(l:patterns/readwrite#hexcasting:write)$(action)필경사의 묘수/$와 같지만, 다른 손이 아니라 엔티티에 이오타를 쓴다.$(br2)흥미롭게도 이 주문으로 내 자신의 이름은 쓸 수 없는 것 같다. 가능했다면 위험해졌을 것이라는 감각이 든다.", + readable: "다른 손의 아이템이 내가 읽을 수 있는 이오타를 담고 있으면 True를 반환한다. 아니면 False를 반환한다.", + "readable/entity": "$(l:patterns/readwrite#hexcasting:readable)$(action)감사자의 반사/$와 같지만, 다른 손 대신 엔티티의 읽기 가능 여부를 확인한다.", + writable: "다른 손의 아이템에 이오타를 저장할 수 있으면 True를 반환한다. 아니면 False를 반환한다.", + "writable/entity": "$(l:patterns/readwrite#hexcasting:writable)$(action)평가자의 반사/$와 같지만, 다른 손 대신 엔티티의 쓰기 가능 여부를 확인한다.", + "local.title": "까마귀정신", + local: "하지만 아이템만이 정보를 저장할 수 있는 장소는 아니다. 스택과 비슷하지만 별도로, $(hex)주문문양/$ 자체의 $(media)미디어/$ 안에도 그 정보를 저장할 수 있다. 문헌은 이를 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$이라 부른다. $(l:items/focus)$(item)초점구/$와 비슷하게 하나의 이오타를 담고, 역시 $(thing)Null/$로 시작한다. $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$ 반복 사이에서는 보존되지만, 그것이 속한 $(hex)주문문양/$이 지속되는 동안에만 남는다. 시전을 멈추면 값은 사라진다.", + "write/local": "스택 맨 위 이오타를 제거하고 내 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$에 저장해, $(hex)주문문양/$ 시전을 멈출 때까지 그곳에 보관한다.", + "read/local": "내 $(l:patterns/readwrite#hexcasting:local)$(thing)까마귀정신/$에서 이오타를 복사한다. 아마 방금 $(l:patterns/readwrite#hexcasting:write/local)$(action)후긴의 묘수/$로 쓴 것일 것이다.", + }, + + meta: { + "eval.1": "스택에서 패턴 또는 패턴 목록을 제거한 뒤, 내가 $(l:items/staff)$(item)지팡이/$로 직접 그린 것처럼 시전한다($(l:patterns/meta#hexcasting:halt)$(action)카론의 묘수/$를 만날 때까지). 이오타가 $(l:patterns/patterns_as_iotas#hexcasting:escape)$(action)고려/$나 $(l:patterns/patterns_as_iotas#hexcasting:open_paren)$(action)그 계열/$로 이스케이프되어 있다면 스택에 푸시된다. 그렇지 않으면 패턴이 아닌 것은 실패한다.", + "eval.2": "이는 $(l:items/focus)$(item)초점구/$와 함께 사용하면 매우 강력할 수 있으며, 내가 찾은 한 난해한 두루마리에 따르면 자연의 관료제를 \"튜링 완전\" 체계로 만들기도 한다.$(br2)하지만 $(hex)주문문양/$이 자기 자신을 시전할 수 있는 횟수에는 한계가 있는 듯하다. 자연은 폭주하는 주문을 좋게 보지 않는다!$(br2)또한 내가 인도하지 않는 상태에서 패턴의 에너지가 발생하므로, 어떤 변고든 남은 액션을 즉시 풀어헤치게 된다.", + + "for_each.1": "스택에서 패턴 목록과 목록 하나를 제거한 뒤, 주어진 패턴 목록을 두 번째 목록의 각 요소에 대해 시전한다.", + "for_each.2": "더 구체적으로, 두 번째 목록의 각 요소마다 다음을 수행한다:$(li)현재 스택의 모든 것에 그 요소를 더한 새 스택을 만든다.$(li)첫 번째 목록의 모든 패턴을 그린다.$(li)스택에 남은 모든 이오타를 목록에 저장한다.$(br)그리고 모든 것이 끝나면 저장된 이오타 목록을 주 스택에 푸시한다.$(br2)이 기술의 모든 수행자가 미쳐 가는 것도 무리가 아니다.", + + "halt.1": "이 패턴은 $(hex)주문문양/$을 강제로 중단한다. 그냥 패턴 쓰기를 멈추거나 지팡이를 내려놓으면 되므로, 단독으로는 거의 쓸모없다.", + "halt.2": "하지만 $(l:patterns/meta#hexcasting:eval)$(action)헤르메스/$나 $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$와 결합하면 $(italics)훨씬/$ 더 흥미로워진다. 그 패턴들은 중단을 '담아' 두는 역할을 하며, 전체 $(hex)주문문양/$을 끝내는 대신 그 묘수들만 끝낸다. 이를 사용하면 $(l:patterns/meta#hexcasting:for_each)$(action)토트의 묘수/$가 받은 모든 이오타에 작동하지 않게 만들 수 있다. 말하자면 광기로부터의 탈출이다.", + + "eval/cc.1": "$(l:patterns/meta#hexcasting:eval)$(action)헤르메스의 묘수/$와 정확히 같은 방식으로 스택의 패턴 또는 패턴 목록을 시전하지만, 그 전에 고유한 \"Jump\" 이오타가 스택에 푸시된다. ", + "eval/cc.2": "\"Jump\" 이오타가 실행되면 남은 패턴을 건너뛰고 패턴 목록의 끝으로 바로 점프한다.$(p)$(l:patterns/meta#hexcasting:halt)$(action)카론의 묘수/$가 있는데 중복처럼 보일 수 있지만, 이것은 $(italic)중첩된/$ $(l:patterns/meta#hexcasting:eval)$(action)헤르메스/$ 호출에서 제어된 방식으로 빠져나오게 해 준다. 카론은 하나만 빠져나오게 해 줄 뿐이다.$(p)\"Jump\" 이오타는 실행이 끝난 후에도 스택에 남는 듯하다... 그 의미는 생각하지 않는 편이 좋겠다.", + + "thanatos.1": "$(hex)주문문양/$이 아직 평가할 수 있는 패턴 수를 스택에 추가한다. 이 값은 $(hex)주문문양/$이 패턴을 하나 시전할 때마다 하나씩 줄어든다." + }, + + circle_patterns: { + disclaimer: "이 패턴들은 반드시 $(l:greatwork/spellcircles)$(item)마법진/$에서 시전해야 한다. $(l:items/staff)$(item)지팡이/$로 시전하려 하면 아주 장관스럽게 실패한다.", + + "circle/impetus_pos": "이 마법진의 $(l:greatwork/impetus)$(item)원동석/$ 위치를 반환한다.", + "circle/impetus_dir": "이 마법진의 $(l:greatwork/impetus)$(item)원동석/$이 향한 방향을 단위 벡터로 반환한다.", + "circle/bounds/min": "이 마법진 경계의 아래-북서쪽 모서리 위치를 반환한다.", + "circle/bounds/max": "이 마법진 경계의 위-남동쪽 모서리 위치를 반환한다.", + }, + + akashic_patterns: { + "akashic/read": "주어진 위치의 $(l:greatwork/akashiclib)$(item)기록매체/$를 가진 $(l:greatwork/akashiclib)$(item)아카식 도서관/$에서, 주어진 패턴에 연결된 이오타를 읽는다. 범위 제한이 없다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "akashic/write": "주어진 위치의 $(l:greatwork/akashiclib)$(item)기록매체/$를 가진 $(l:greatwork/akashiclib)$(item)아카식 도서관/$에서, 주어진 패턴에 이오타를 연결한다. 이것은 범위 제한이 $(italic)있다/$. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + }, + + // Normal Spells + + itempicking: { + "1": "$(l:patterns/spells/blockworks#hexcasting:place_block)$(action)블록 설치/$ 같은 특정 주문은 내 인벤토리에서 추가 아이템을 소비한다. 이런 일이 일어나면 주문은 먼저 사용할 아이템을 찾고, 이후 내 인벤토리에 있는 그런 모든 아이템에서 가져온다.$(br2)이 과정을 \"아이템 선택\"이라고 부른다.", + "2": "더 구체적으로:$(li)먼저 주문은 내 $(l:items/staff)$(item)지팡이/$의 $(italic)오른쪽/$ 핫바에서 첫 번째 유효한 아이템을 찾는다. 오른쪽 끝에서는 순환하며, $(l:items/staff)$(item)지팡이/$가 보조 손에 있으면 첫 번째 슬롯에서 시작한다.$(li)둘째, 주문은 그 아이템을 내 인벤토리의 가능한 $(italic)가장 뒤쪽/$에서부터 가져오며, 핫바보다 주 인벤토리를 우선한다.", + "3": "이렇게 하면 핫바에 주문이 무엇을 사용할지 알려 주는 \"선택기\" 아이템을 두고, 나머지 인벤토리를 그 아이템으로 채워 주문 재고를 넉넉히 유지할 수 있다.", + }, + + basic_spell: { + "explode.1": "스택에서 숫자와 벡터를 제거한 뒤, 주어진 위치에 주어진 위력의 폭발을 만든다.", + "explode.2": "위력 3은 크리퍼 폭발 정도이고, 4는 TNT 폭발 정도다. 다만 자연은 위력 10을 넘는 폭발을 허락하지 않는다.$(br2)묘하게도 이 폭발은 나를 해치지 않는 듯하다. 아마 폭발하는 것이 $(italic)나/$이기 때문일까?$(br2)위력 0에서는 무시할 만한 양이 들고, 폭발 위력 1마다 추가로 $(l:items/amethyst)$(item)자수정 가루/$ 약 3개가 든다.", + + "explode.fire.1": "스택에서 숫자와 벡터를 제거한 뒤, 주어진 위치에 주어진 위력의 화염 폭발을 만든다.", + "explode.fire.2": "비용은 $(l:items/amethyst)$(item)자수정 가루/$ 하나에, 폭발 위력 1마다 추가로 $(l:items/amethyst)$(item)자수정 가루/$ 약 3개다. 그 외에는 $(l:patterns/spells/basic#hexcasting:explode)$(action)폭발/$과 같지만, 불이 붙는다.", + + add_motion: "스택에서 엔티티와 방향을 제거한 뒤, 주어진 엔티티를 주어진 방향으로 밀어낸다. 충격의 세기는 벡터의 길이로 결정된다.$(br)비용은 벡터 길이의 제곱과 같은 수의 $(l:items/amethyst)$(item)자수정 가루/$이며, 같은 엔티티를 대상으로 한 첫 번째 이후의 충격마다 하나씩 추가된다.", + blink: "스택에서 엔티티와 길이를 제거한 뒤, 주어진 엔티티를 그 시선 벡터를 따라 주어진 길이만큼 순간이동시킨다.$(br)이동한 두 블록마다 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나가 든다.", + + "beep.1": "스택에서 벡터와 숫자 두 개를 제거한다. 첫 번째 숫자가 정한 $(thing)악기/$를 주어진 위치에서 연주하고, 두 번째 숫자가 정한 $(thing)음/$을 낸다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "beep.2": "$(thing)악기/$는 16종, $(thing)음/$은 25종이 있는 듯하다. 둘 다 0부터 번호를 매긴다.$(br2)이들은 $(item)소리 블록/$으로 낼 수 있는 악기와 같은 것 같지만, 각 악기의 번호가 왜 그렇게 되었는지는 알 수 없다.$(br2)어쨌든 $(l:items/lens)$(item)염시 렌즈/$로 $(item)소리 블록/$을 살펴보면 필요한 숫자를 찾을 수 있다.", + }, + + blockworks: { + place_block: "스택에서 위치를 제거한 뒤, 블록 아이템을 선택해 주어진 위치에 놓는다.$(br)비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 1/8개.", + break_block: "스택에서 위치를 제거한 뒤, 주어진 위치의 블록을 부순다. 이 주문은 다이아몬드 곡괭이가 부술 수 있는 거의 모든 것을 부술 수 있다.$(br)비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 1/8개이며, $(l:patterns/spells/blockworks#hexcasting:conjure_block)$(action)소환된 블록/$이나 $(l:patterns/spells/blockworks#hexcasting:conjure_light)$(action)소환된 빛/$을 부술 때는 무시할 만한 양이다.", + create_water: "주어진 위치의 블록에 물 한 블록을 소환한다(또는 양동이 하나 분량까지 채운다). 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + destroy_water: "주어진 위치의 액체 용기나 그 주변의 액체 덩어리를 비운다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 두 개.", + conjure_block: "주어진 위치에 내 안료로 반짝이는, 비물질적이지만 단단한 블록을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + conjure_light: "주어진 위치에 내 안료로 부드럽게 빛나는 마법의 빛을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + bonemeal: "대상 위치의 식물이나 묘목이 $(item)뼛가루/$를 사용한 것처럼 자라도록 북돋운다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 하나보다 조금 많다.", + edify: "대상 위치의 묘목에 $(media)미디어/$를 강제로 주입해 $(l:items/edified)$(thing)교화된 나무/$로 자라게 한다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + ignite: "주어진 위치 위에 $(item)화염구/$를 사용한 것처럼 불을 붙이거나, 엔티티에 불을 붙인다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + extinguish: "넓은 영역의 블록을 소화한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 여섯 개.", + }, + + nadirs: { + "1": "이 주문 계열은 모두 엔티티에게 부정적인 물약 효과를 부여한다. 모두 받는 대상인 엔티티와 하나 또는 두 개의 숫자를 받으며, 첫 번째는 지속 시간, 두 번째가 있으면 위력(1부터 시작)이다.$(br2)각각에는 \"기본 비용\"이 있으며, 실제 비용은 그 기본 비용에 위력의 제곱을 곱한 값이다.", + "2": "일부 전설에 따르면, 이 주문들과 그 자매인 $(l:patterns/great_spells/zeniths)$(action)천정/$들은 \"[...] 강력한 마법사들이 땅에서 마법을 모아 죽음의 결투를 벌이던, 이 세계와 가까운 어떤 세계에서 영감을 받았다. 안타깝게도 번역 과정에서 많은 것이 사라졌다...\"고 한다.$(br2)아마 그래서 이름이 특이한 것일지도 모른다.", + + "potion/weakness": "$(thing)나약함/$을 부여한다. 기본 비용은 10초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/levitation": "$(thing)공중 부양/$을 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/wither": "$(thing)시듦/$을 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/poison": "$(thing)독/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/slowness": "$(thing)감속/$을 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + }, + + hexcasting_spell: { + basics: "이 세 주문은 각각 $(l:items/hexcasting)$(thing)$(hex)주문문양/$을 시전하는 아이템/$을 만든다.$(br)모두 빈 아이템을 보조 손에 들고 있어야 하며, 두 가지가 필요하다. 시전할 패턴 목록과, 아이템의 배터리를 형성할 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 나타내는 엔티티다.$(br2)자세한 내용은 $(l:items/hexcasting)이 항목/$을 보라.", + "craft/cypher": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + "craft/trinket": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 다섯 개.", + "craft/artifact": "비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 열 개.", + + "recharge.1": "다른 손에 든 $(media)미디어/$ 포함 아이템을 재충전한다. 비용은 아이템 하나당 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나.", + "recharge.2": "이 주문은 제작 주문과 비슷한 방식으로 시전된다. 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 나타내는 엔티티가 제공되고, 다른 손의 아이템에 있는 $(media)미디어/$ 배터리를 재충전한다.$(br2)이 주문은 아이템을 원래 배터리 크기보다 더 많이 재충전할 수 $(italic)없다/$.", + + "erase.1": "다른 손에 든 $(hex)주문문양/$ 포함 아이템 또는 이오타 포함 아이템을 비운다. 비용은 아이템 하나당 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "erase.2": "이 주문은 아이템 안에 저장된 모든 $(media)미디어/$도 무효화하여 자연으로 되돌리고, 아이템을 완전히 깨끗한 석판으로 되돌린다. 예를 들어 잘못된 주문을 넣은 $(l:items/hexcasting)$(item)장신구/$를 다시 사용할 수 있다.$(br2)$(l:items/focus)$(item)초점구/$나 $(l:items/spellbook)$(item)마도서/$ 페이지를 비우는 데도 작동하며, 그 과정에서 봉인도 풀린다.", + }, + + sentinels: { + "1": "$(italic)그러니 물러나라! 이제 모두 잘되었으니,$(br)홀로 선 감시자 하나./$$(br2)$(l:patterns/spells/sentinels)$(thing)감시자/$는 사역마나 수호령처럼 $(hex)주문문양/$ 시전을 돕도록 소환할 수 있는 신비한 힘이다. 내 심상 한구석에 연결된 듯하다.", + "2": "몇 가지 흥미로운 성질이 있다:$(li)실체가 없어 보인다. 아무도 만질 수 없다.$(li)오직 내 $(hex)주문문양/$만 그것과 상호작용할 수 있다.$(li)한번 소환되면 추방될 때까지 제자리에 머문다.$(li)내가 충분히 가까이 있으면 언제나 볼 수 있다.", + + "sentinel/create": "주어진 위치에 내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 하나.", + "sentinel/destroy": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$를 추방해 세계에서 제거한다. 무시할 만한 양의 $(media)미디어/$를 소비한다.", + "sentinel/get_pos": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$의 위치를 스택에 추가한다. 소환되어 있지 않다면 $(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)이것이 무슨 쓸모인지 내게는 불명확하다. 하지만 쓸모는 보는 사람의 눈에 달린 것이겠지." + }, + + create_lava: { + "1": "주어진 위치의 블록에 용암 한 블록을 소환한다(또는 양동이 하나 분량까지 채운다). 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + "2": "이 주문에 대한 지식은 비밀로 해 두는 편이 좋을지도 모른다. 듣자 하니 어떤 식물학자 파벌은 이것에... 예민하게 군다고 한다.$(br2)뭐, 우주의 깊은 비밀을 추적하는 일이 쉬울 거라고 한 사람은 아무도 없었다.", + }, + + weather_manip: { + lightning: "나는 하늘에 명한다! 이 주문은 내가 지정한 곳의 땅을 치는 번개를 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 조각/$ 약 세 개.", + summon_rain: "나는 구름을 다스린다! 이 주문은 내가 시전한 세계 전역에 비를 내리게 한다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나. 이미 비가 오고 있다면 아무 일도 하지 않는다.", + dispel_rain: "비를 소환하는 주문의 대응물이다. 이 주문은 내가 시전한 세계 전역의 비를 걷어낸다. 비용은 $(l:items/amethyst)$(item)자수정 조각/$ 약 하나. 하늘이 이미 맑다면 아무 일도 하지 않는다.", + }, + + altiora: { + "1": "활공할 수 있을 만큼의 실체를 부여받은 날개 형태의 $(media)미디어/$ 다발을 내 주위에 소환한다.", + "2": "사용법은 $(item)겉날개/$와 동일하다. 대상(반드시 플레이어여야 한다)은 공중으로 떠오르고, 그 후 $(k:jump)를 누르면 날개가 펼쳐진다. 날개는 취약해서 어떤 표면에 닿아도 부서진다. 긴 비행에는 더 많은 $(media)미디어/$가 필요하다.", + }, + + "teleport/great": { + "1": "$(l:patterns/spells/basic#hexcasting:blink)$(action)점멸/$보다 훨씬 강력한 이 주문은 엔티티를 세계 어디로든 순간이동시킨다! 거리와 상관없이 항상 $(l:items/amethyst)$(item)충전된 자수정/$ 약 열 개가 드는 듯하다.", + "2": "제공한 벡터는 세계의 절대 위치가 아니라 오프셋이다. 예를 들어 (1, 0, 0)을 사용하면 엔티티는 원래 위치에서 정확히 동쪽으로 한 블록 떨어진 곳에 있게 된다.$(br2)불행히도 나 자신을 순간이동시킬 때는 인벤토리의 아이템들이 날아가 흩어지는 듯하다. 조심해야겠다.", + }, + + zeniths: { + "1": "이 주문 계열은 $(l:patterns/spells/nadirs)$(action)천저/$와 비슷하게 모두 엔티티에게 긍정적인 물약 효과를 부여한다. 하지만 이들은 위력의 $(italic)세제곱/$에 따라 $(media)미디어/$ 비용이 증가한다.", + + "potion/regeneration": "$(thing)재생/$을 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/night_vision": "$(thing)야간 투시/$를 부여한다. 기본 비용은 5초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/absorption": "$(thing)흡수/$를 부여한다. 기본 비용은 초당 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/haste": "$(thing)성급함/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + "potion/strength": "$(thing)힘/$을 부여한다. 기본 비용은 3초마다 $(l:items/amethyst)$(item)자수정 가루/$ 하나.", + }, + + greater_sentinel: { + "1": "내 $(l:patterns/spells/sentinels)$(thing)감시자/$의 상급 버전을 소환한다. 비용은 $(l:items/amethyst)$(item)자수정 가루/$ 약 두 개.", + "2": "더 강한 $(l:patterns/spells/sentinels)$(thing)감시자/$는 시각적으로 조금 더 흥미롭다는 점을 빼면, 고위 주문 없이 소환할 수 있는 일반 감시자처럼 작동한다. 하지만 내 주문이 작동할 수 있는 범위가 감시자 주위의 작은 영역까지 확장된다.", + }, + + make_battery: { + "1": "병에 $(media)미디어/$를 주입해 $(l:items/phials)$(item)약병/$을 만든다.", + "2": "$(l:patterns/spells/hexcasting)$(action)시전 아이템 제작/$ 주문들과 비슷하게, 다른 손에 $(item)유리병/$을 들고 있어야 하며, 주문에 떨어진 $(l:items/amethyst)$(item)자수정/$ 더미를 제공해야 한다. 자세한 내용은 $(l:items/phials)이 항목/$을 보라.", + }, + + "brainsweep_spell.1": "이 주문은 도무지 알 수가 없다... 솔직히 말해, 이것이 무엇을 하는지 알고 싶은지도 모르겠다.", + + + lore: { + cardamom1: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #1/$$(br2)사랑하는 아빠께,$(br)저를 대도서관에 보내려고 돈을 모아 주신 것에 감사해야 할 이유가 매일 더 늘어나는 것 같아요. 제가 배우는 양은 믿을 수 없을 정도예요! 제 머리에 다 들어갈지 모르겠어요.", + "2": "이 편지를 쓰는 저는 주돔에 앉아 있어요. 이곳은 육각술단이 관리하는데, 꼭대기에 책상마다 열심히 공부하는 학생들에게서 새어 나오는 떠돌이 사고 에너지를 붙잡는 특이한 장치가 있답니다.", + "3": "제가 이해하기로, 우리의 사고 과정, 그러니까 제가 펜을 움직이고 아빠가 이 편지를 읽게 하는 보이지 않는 장치들은 완전히 효율적이지 않아요. 약간의 에너지가 환경으로 방출돼요. 촛불이 빛과 열을 내듯이요.", + "4": "하지만 그녀의 연구 이야기는 이쯤 할게요. 오늘 지질단과의 첫 탐사를 마치고 돌아왔어요! 떠나기 전에 편지를 보내지 못해 죄송해요. 날짜가 갑자기 다가왔거든요. 우리는 대도서관 동쪽 땅의 균열 속으로 들어갔어요.", + "5": "다행히 밤은 아무 사고 없이 지나갔고, 우리는 주변 광맥을 조사하러 동굴 더 깊이 들어갔어요. '자수정'이라는 보라색 결정의 흔적 광맥을 찾고 있었어요. 지하 깊은 곳에 소량 생긴다고 하더군요.", + "6": "생각해 보니, 이제야 이 '자수정'에 대한 설명이 아마니타가 말하던 미디어 결정과 꽤 닮았다는 걸 깨달았어요. 이런 생각의 덩어리가 땅속에서 자연적으로 생긴다고 상상해 보세요! 왜 그런 일이 일어나는지는 상상도 못 하겠지만요.", + "7": "학생으로서 저는 3개월마다 한 번, 아카식 우편으로 무료 편지를 보낼 권리가 있어요. 안타깝게도 제 주머니 사정이 얼마나 얇은지는 아시잖아요... 그래서 이 제도가 아빠와 연락할 수 있는 유일한 방법일까 두려워요. 물론 가능한 한 자주 쓰겠습니다.", + "8": "그러니 3개월 뒤에 다시 쓰게 되겠네요.$(br2)사랑을 담아,$(br)-- 카다멈 스틸스", + }, + + cardamom2: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #2/$$(br2)사랑하는 아빠께,$(br)...세상에, 지난 석 달을 짧은 편지 하나로 요약하려니 얼마나 큰 고역인지요. 제가 받은 이 기적 같은 제도가 제게 이토록 잔인한 과제를 주다니요.", + "2": "지질단에서의 공부는 순조롭게 진행되고 있어요. 우리는 더 많은 탐사를 했고, 땅속 더 깊은 곳, 매끄러운 회색 돌이 단단하고 얇게 벗겨지는 석판으로 바뀌는 곳까지 내려갔어요. 발밑에서 끔찍하고 숨 막히는 먼지가 일어나서 기침을 참기 힘들 정도예요.", + "3": "그래도 우리는 그 자수정을 조금 찾아냈어요. 한 탐사에서 흔적 결정 몇 개가 있는 작은 광맥이 있었거든요. 우리는 그것을 하나도 가지지 말고 즉시 단장에게 제출하라는 엄격한 지시를 받았어요. 저는 그게 좀 이상했어요.", + "4": "무슨 목적인지도 상상하기 어려워요. 한 사서가 보석 백과사전을 알려 줬는데, 자수정은 거의 쓸모가 없어 보였어요. 하필 특수한 종류의 유리와 렌즈에 쓰인다고 하더군요.$(br2)짐작해 보자면, 혹시 그것이 미디어 결정과 관련된 것일까요?", + "5": "그렇다면 비밀주의와, 질문을 꺼리는 단장의 태도는 이것이 대도서관이 적대 세력 손에 넘기고 싶어 하지 않는 독자 연구이기 때문일지도 몰라요.$(br2)하지만 이 이론은 아마니타가 보여 준 실제 미디어 결정과는 느낌이 조금 달랐다는 점을 설명하지 못해요.", + "6": "동굴 안에서 제가 자수정의 느낌을 제대로 느끼지 못한 것은 지하에 있다는 스트레스 때문이었을 가능성이 커요. 겨우 만져 본 한 번에도 손이 떨렸고, 감각이 아주 희미했거든요. 하지만 아마니타의 미디어와 완전히 같지는 않아 보여요.", + "7": "바로 지난주에 그녀는 저를 아무것도 받치지 않은 채 공중에 띄웠어요! 옷의 무게는 그대로인데 몸은 저릿하고 공기보다 가벼워진다는 건 엄청나게 이상한 느낌이에요... 침대 위로 끌어다 놓아 준 게 그저 다행이었어요.", + }, + + cardamom3: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 1/2부/$$(br2)사랑하는 아빠께,$(br)지난번 편지 이후 아주 이상한 일이 두 가지 일어났어요.$(br2)첫째로, 입문 육각술단 학생들을 담당하던 교수가 사라졌어요.", + "2": "더 이상하게도, 대도서관 학생들이 뒤틀린 관료 조직의 행정 부문을 깨우려는 모든 시도는 아주 단호하게 거부되었어요. 다른 교수들조차 그에 대해 말하기를 꺼리는 것 같아요.$(br2)상상하시겠지만, 우리 모두 매우 불안해하고 있어요.", + "3": "하지만 놀랍게도 제가 말씀드릴 두 가지 중 더 이상한 일은 그게 아니에요. 제가 평생 겪게 되리라 바라는 가장 끔찍한 일이 지질단과의 또 다른 외출에서 벌어졌어요. 이번에는 한 마을 근처로 탐사를 갈 예정이었어요.", + "4": "보통 그런 일을 할 때는 마을의 촌장이나 원로와 오래 소통해서 허가를 받고, 우리가 어디까지 가고 무엇을 해도 되는지 경계를 정해요. 하지만 이번에는 그 모든 절차가 이미 끝났다고 들었어요.", + "5": "우리는 마을 근처에 야영했지만, 가까운 평원이 훨씬 지내기 좋았을 텐데도 울창한 숲속에 자리를 잡았어요. 텐트를 친 곳에서는 마을이 거의 보이지 않았어요. 도착한 저녁 침낭을 펴는데, 사람들은 이상할 만큼 말이 없었어요.", + "6": "제가 들은 몇 안 되는 소리는 전부 일하는 소리 같았어요. 모루 위 망치 소리와 흙을 긁는 괭이 소리 같은 것들이요. 대화 소리는 한 조각도 듣지 못했어요.$(br2)다음 날 아침 우리는 등불을 준비하고 땅속으로 내려갔어요.", + "7": "우리가 정확히 무엇을 찾으러 동굴에 들어가는지는 듣지 못했지만, 다른 학생 하나가 더 많은 자수정을 찾는다는 말을 엿들었다고 했고, 그럴듯해 보였어요. 저는 동굴 벽에서 보라색 점이라도 찾으려고 눈을 크게 떴어요.", + "8": "장갑이 배부되었고 채굴을 시작하라는 지시를 받았어요. 함께 간 단장 중 하나는 대도서관의 높으신 분들이 보관용으로 쓰는 것을 본 적 있는 이상한 연보라색 상자를 가지고 있었고, 다른 학생들과 저는 성실하게 결정을 깨뜨리기 시작했어요.", + "9": "'중요하다'고 말하기는 망설여지지만, 제가 생각할 수 있는 가장 가까운 말이에요. 표면에 어둡고 움푹 팬 X가 신성한 의미라도 품은 듯한 어떤... 무게가 있었어요. 이유가 무엇이든, 우리는 그것들을 만지지 말라는 엄격한 지시를 받았어요.", + "10": "숨을 들이쉴 때마다 머릿속에 앞으로 나아갈 길을 약속하는 친절한 이정표가 세워지는 것 같았어요. 그 이정표는 가파른 절벽 아래를 곧장 가리키고 있었죠. 저는 고개를 흔들고 채굴 작업에 몰두했고, 그러자 이정표가 밀려나는 듯했어요.$(br2)저는 그 감각이 마음에 들지 않았어요.", + "11": "떠나면서, 우리가 캐지 않고 남겨 둔 그 어둡고 흠집 난 자리들의 표면에 아주 희미한 새 결정의 싹이 있는 것처럼 보인다는 점을 눈치채지 않을 수 없었어요. 지질학에서 배운 모든 것에 따르면 그런 일은 말이 되지 않았어요.", + "12": "지상으로 돌아오는 길은 별일 없었고, 해가 질 무렵 텐트로 돌아왔어요-- 죄송해요, 이 편지에 쓸 종이가 거의 다 떨어졌어요. 아카식 편지 한 장에 쓸 수 있는 양은 한계가 있네요... 이 이야기는 이어서 써야겠어요.", + }, + + cardamom4: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #3, 2/2부/$$(br2)사랑하는 아빠께,$(br)말씀드렸듯 이야기를 쓸 종이가 모자랐기 때문에 나머지는 이 편지에 적어요. 우리는 해질녘에 막 야영지로 돌아왔어요.", + "2": "한밤중에 볼일을 보려고 일어났어요. 달은 구름에 가려 있었고, 고백하건대 저는 숲의 바람 속에서 길을 잃어 야영지로 돌아가는 길을 찾지 못했어요. 밤의 괴물이 두려워서 마을로 향하기로 했어요.", + "3": "마을을 찾는 건 어렵지 않았지만 소리가 거의 없었어요. 이렇게 늦은 밤이라도 여관은 북적이지는 않아도 적어도 조용하진 않을 거라고 생각했어요. 하지만 여관 문틈으로 들여다보니 아무도 없었어요.$(br2)문을 두드렸지만 아무 대답도 없었죠.", + "4": "맥박이 빨라지기 시작했고, 저는 다음 집에 들어가기로 했어요. 안에 누가 있든 잠을 방해받은 것을 이해해 줄 거라고 생각했어요. 적어도 다른 목소리를 듣는 것만으로도 안심이 되었을 거예요, 설령 도와주지 않더라도.", + "5": "그때 구름이 움직였고, 달빛이 침대 위의 존재를 비추었어요.$(br2)저는 비명을 질렀고, 그것의 눈이 번쩍 떠졌어요. 그것은... 분명하고 끔찍하게도 인간이 아니었어요. 사람의 끔찍한 퇴화물 같았어요. 이마는 너무 높고, 얼굴은 너무 평평했죠.", + "6": "그 눈이 저를 향했어요. 아, 그 눈은 끔찍했어요. 양처럼 흐리고 지성이라고는 없었어요! 그것이 입을 열자 고통스러운 말의 모조품, 떨리는 콧소리 신음이 흘러나왔어요.", + "7": "저는 달렸어요. 새로 드러난 달빛 속에서 창문 너머 다른 마을 사람들을 얼핏 보았고, 그들은 모두 제가 처음 본 그 $(italic)것/$처럼 뒤틀리고 단순해져 있었어요. 저는 마을에서, 그 소리에서, 숲의 어둠 속으로 전력으로 달렸어요.", + "8": "이 편지에서 아시겠지만, 저는 잘 해내지 못했어요. 그 뒤틀린 얼굴은 아직도 제 꿈을 괴롭혀요. 그것이 한때 인간이었을지도 모른다고 생각하면 몸서리쳐져요.$(br2)대도서관에 돌아온 뒤, 제가 몰래 가져온 결정 조각을 아마니타에게 보여 주었어요.", + "9": "그녀는 흥미로운 것도 말해 주었어요. 몇 통 전 편지에서 말한 특수 유리에 진짜 자수정처럼 미디어를 비슷하게 사용할 수 있다고 해요. 둘이 결정화되는 물리적 방식이 거의 동일하다는 것이죠.", + "10": "아빠의 돈 사정이 얼마나 빠듯한지, 대도서관까지 답장을 보내는 것이 얼마나 비싼지 알지만, 부탁드려요. 조언 한마디만 보내 주세요. 저는 너무 괴롭고, 아빠의 글을 읽으면 큰 위안이 될 거예요.$(br2)사랑을 담아,$(br)-- 카다멈", + }, + + cardamom5: { + "1": "$(italic)전체 제목: 카다멈 스틸스가 아버지에게 보낸 편지 #4/$$(br2)아마니타가 사라졌어요.$(br2)어디로 갔는지 모르겠어요, 아빠. 마지막으로 본 것은 저녁 식사 때였고, 그녀는 방금 누군가에게 실종 사건에 대해 말했어요.", + "2": "그리고-- 그리고 그녀도 사라졌어요. 아무도 그녀 이야기를 하지 않아요. 너무 너무 무서워요, 아빠. 모두 알고 있는 걸까요? 누구에게나 그냥 $(italic)사라진/$ 친구가 하나쯤 있는 걸까요, 허공 속으로, 비존재 속으로.$(br2)그들은 어디로 $(italic)간/$ 걸까요?", + "3": "그들은 계속 모든 것을 닫고 있어요. 우리는 몇 주째 지질단 탐사를 가지 못했고, 주돔에서 미디어를 모으던 모든 장치가 사라졌고, 약제단은 몇 달째 열리지 않았어요... 흰개미가 속에서 건물을 갉아먹는 것 같아요.", + "4": "이 편지를 쓰는 데 정말 많은 용기가 필요했어요. 저는 사람들에게 직접 말할 용기가 없지만, 이곳 누구도 이 지식을 붙잡을 수 없다면 아빠가 소식을 밖으로 전해 주시기를 바라고 기도해요... 어딘가 작은 곳에서 퍼져나가길 바라는 것은 헛된 희망이겠지만요.", + "5": "더는 쓸 수 없어요, 손이 너무 떨려요, 제발, 우리를 구해 주세요.", + }, + + inventory: { + "1": "39번 감방, 복원 기록 #72, 베타 구금 센터$(br2)수감자 이름: 라파엘 바르$(br)죄목: 울아이 프로젝트에 대한 지식$(br)감방 공실 사유: 사망$(br)추가 기록: 다음 편지는 벽 대부분에 휘갈겨져 있었다.", + "2": "눈을 감으면 육각형이 보인다.$(br2)패턴들이 내 눈과 눈꺼풀 사이, 내 정신, 내 꿈을 침범한다. 나는 실에 매달린 결정처럼 정신이 들었다 나갔다 하며, 때때로 빛을 붙잡고 때때로 아무것도 아니다.", + "3": "오늘은 더 또렷하다. 아마도. 이제는 알 수 없다. 더는 피곤하다고 말할 수도 없다. 어느 순간 늘 함께하던 탈진감은 나를 떠났고, 대신 다른 무언가가 내 눈을 찌르러 왔다. 피로는 느낄 수 없다. 하지만 거기 있다.", + "4": "가끔 내가 왜 여기 있는지 떠오른다. 내가 아는 것에 대해 너무 시끄럽게 굴었던 기억이 난다... 매우 밝은 방에서 무언가를 들었던 기억이 난다. 내 생각이 유리로 얼고, 부서지고, 녹고, 몇 번이고 재결정화되던 기억이 난다.", + "5": "그들은 나를 눈속임도 통하지 않을 만큼 망가뜨렸다고 생각했지만 나는 고통을 느낄 만큼은 깨어 있었고 지금도 깨어 있다$(br2)나는 잠들지 않지만 깨어나면 눈의 딱지를 문질러 떼어낼 수 없다. 그러면 피부가 베이고 피가 나기 때문이다.", + "6": "그들은 나를 죽이지 않는다. 내 남편이 내 초점구를 가지고 있어서, 내가 죽으면 알 것이기 때문이다. 하지만 그는 육각술사가 아니고 그 평범한 실력으로 나를 찾을 수 없다. 나는 영향 범위 밖에 있다$(br2)생각하는 게 아 프다. 말 그대로. 생각들이 너무 낭비적이다.", + "7": "밝은 방의 의사들이 모래 같지만 더 날카로운 것을 억지로 들이마시게 했던 기억이 난다. 너무 아팠다. 처음에는 점막이 산산유리를 흡수하려는 육체적 고통뿐이었지만, 곧 그들은 내 정신에 손톱을 박아 넣었다.", + "8": "시간 밖으로 표류한다. 가끔 미래의 환영을 본다고 믿는다. 말이 되는 것 같지만 지금 일어날 수는 없다. 하얀 방 사람들이 말했듯 나는 영원히 여기 있을 것을 알기 때문이다. 내가 쓰러지고 두개골이 깨지는 것을 본다.", + "9": "내 학생들이 무사했으면 좋겠다. 왜 그런 생각을 하지? 낭비다. 그들은 내가 낭비라고 말했다. 나를 파괴하는 것만으로 만족하지 못하고, 내내 내가 그럴 만했다고 느끼게 만들었다. 뼈를 부술 몽둥이나 돌이 아니라, 말뿐이었다.", + "10": "주변에 미디어가 가득해서 여러 번 주문문양을 시전해 탈출하거나 적어도 고통을 꺼 버리려 했다. 하지만 내 정신의 들판을 행진하는 패턴들은 내가 손을 뻗으려 하면 비웃으며 녹아 사라진다.", + "11": "어쩌면 나는 그저 초과 시전 의존의 아주 아주 아주 아주 말기일 뿐인지도 모른다. 눈과 눈꺼풀 사이 공간을 종이처럼 베는 패턴들은 들어 본 적이 있고, 신경의 보라색 가장자리도 들어 본 적이 있다. 계속 쓰려는 의미가 있을까.", + "12": "그들은 세상 모두를 죽일 것이다 그렇지 않은가 대도서관도 나만큼 먹어야 한다 ... 내가 마지막으로 언제 먹었지$(br2)다른 모두도 먹어야 한다. 세계의 모든 농부가 비어 있고 모든 지식이 먹혀 버리면 그들은 먹을 수 없다.", + "13": "언젠가 깨어나 우리가 남긴 모든 것을 보고 궁금해할지도 모른다. 왜 지하에 수백만 마일의 터널이 있는데 그것을 캘 만큼 똑똑한 사람이 아무도 없는지 궁금해할지도 모른다$(br2)그들이 이것을 읽는 것이 보인다. 그들은 ... 너무 멀리 가서 신경 쓰지 못할 것이다.", + }, + + experiment1: { + "1": "$(italic)이 기록에서 이 다섯 항목만 겨우 찾았다./$$(br2)폭발 #26$(li)위치: 카펜터스 노스$(li)인구: 174$(li)형성된 노드: 3$(li)진원지로부터 노드 거리: 수직 55-80m, 수평 85-156m$(li)미디어 생성량: 1560 uθ/min", + "2": "폭발 #27$(li)위치: 브래큰폴스$(li)인구: 79$(li)형성된 노드: 1$(li)진원지로부터 노드 거리: 수직 95m, 수평 67m$(li)미디어 생성량: 412 uθ/min", + "3": "폭발 #28$(li)위치: 그레이스턴$(li)인구: 약 1000$(li)형성된 노드: 18$(li)진원지로부터 노드 거리: 수직 47-110m, 수평 59-289m$(li)미디어 생성량: 8478 uθ/min", + "4": "폭발 #29$(li)위치: 이름 없음; 그레이스턴에서 서쪽으로 이틀 거리의 마을$(li)인구: 35$(li)형성된 노드: 0$(li)진원지로부터 노드 거리: N/A$(li)미디어 생성량: N/A$(br2)주: 주민들은 여전히 일반적인 방식으로 영향받음", + "5": "폭발 #30$(li)위치: 보일링 브룩$(li)인구: 231$(li)형성된 노드: 4$(li)진원지로부터 노드 거리: 수직 61-89m, 수평 78-191m$(li)미디어 생성량: 1862 uθ/min", + "6": "결론: 노드 하나에는 약 60명이 필요함. 너무 적으면 그들을 소비하지만 노드 형성에 충분한 에너지를 제공하지 못함. 투입 수와 폭/깊이 사이의 상관관계는 작음.$(br2)주민에 대한 영향은 여전히 예상보다 일관되게 더 심각함.", + }, + + experiment2: { + "1": "$(italic)이 문서들은 심하게 검열되어 있었다. 읽을 수 있는 글을 여기에 옮겼다./$$(br2)피험자 #1 \"A.E.\"$(br)절차 직후 저항 중단. 얼굴 표정과 팔다리는 축 늘어졌으나 도움 없이 설 수 있음. 말을 걸면 반응 없음.", + "2": "절차 직후 심박수 높음. 다만 직전의 공포 상태 때문에 결론 불가. 결과 싹은 35 uθ/min 생성.$(br)...$(br)피험자 #4 \"P.I.\"$(br)P.I.에게 심리 검사 실시. 대상은 대상 영속성 유지.", + "3": "피험자 #7 \"T.C.\"$(br)절차 몇 시간 후 다른 피험자와 유사한 결과: 서 있을 수 있고 간단한 작업 수행 가능... $(br2)피험자 #11 \"R.S.\"$(br)절차 전 진정 처리...$(br2) ...", + "4": "피험자 #23 \"A.L.\"$(br)대부분의 피험자보다 말하는 능력이 더 오래 유지됨. 몇 시간에 걸쳐 끊어진 문장으로 줄어들고, 결국 단어 하나 \"카드\"만 남음.$(br2)추가 실험: 절차가 직업 기억에 어떤 영향을 주는가?", + }, + }, + // ^ lore + + interop: { + "1": "$(hex)육각술/$은 다재다능하다. 내 세계가 특정 다른 힘에 의해 $(italic)변형/$되어 있음을 발견한다면, $(hex)육각술/$을 그것들과 조화롭게 결합해 사용할 수 있을지도 모른다.", + "2": "하지만 자연이 내 기술의 이런 측면을 만들 때에는 덜 주의를 기울인 듯하다는 점을 기억해야 한다. 이상한 동작과 버그가 예상된다. 모드 개발자가 최선을 다해 고치겠지만, 기적을 기대해서는 안 된다.", + "3": "마지막으로, 이 세계의 전승과 이야기에 관심이 생긴다면, 이러한 상호작용을 살펴보며 정리한 어떤 기록도 가벼운 여담 이상으로 여겨서는 안 된다고 생각한다.", + + gravity: { + "1": "엔티티의 중력을 가져오고 설정하는 액션을 발견했다. 약간 메스껍지만 흥미롭다.$(br2)흥미롭게도 $(l:patterns/spells/flight)$(action)비행/$ 주문들은 범위나 지속 시간에 제한이 있고, 중력 조작에는 그런 제한이 없다.", + get: "주어진 엔티티를 끌어당기는 중력의 주 방향을 단위 벡터로 얻는다. 대부분의 엔티티에서는 아래쪽, <0, -1, 0>일 것이다.", + set: "주어진 엔티티를 끌어당기는 중력의 주 방향을 설정한다. 주어진 벡터는 $(l:patterns/math#hexcasting:coerce_axial)$(action)축의 정화/$에 따라 가장 가까운 축으로 강제된다. 비용은 $(l:items/amethyst)$(item)충전된 자수정/$ 약 하나.", + }, + + pehkui: { + "1": "엔티티의 크기를 바꾸고, 정상 크기보다 얼마나 크거나 작은지 조회하는 방법을 발견했다.", + get: "엔티티의 크기를 정상 크기에 대한 비율로 얻는다. 대부분의 엔티티에서는 1일 것이다.", + set: "엔티티의 크기를 정상 크기에 대한 비율로 설정한다. 비용은 $(item)자수정 조각/$ 약 1개.", + }, + }, + }, + // ^ page + }, + // ^ hexcasting +} diff --git a/doc/resources/assets/farmersdelight/lang/ko_kr.json b/doc/resources/assets/farmersdelight/lang/ko_kr.json new file mode 100644 index 0000000000..6f9ad2024b --- /dev/null +++ b/doc/resources/assets/farmersdelight/lang/ko_kr.json @@ -0,0 +1,3 @@ +{ + "block.farmersdelight.skillet": "프라이팬" +} diff --git a/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 new file mode 100644 index 0000000000..a4b476e629 --- /dev/null +++ b/doc/resources/assets/hexcasting/lang/ko_kr.flatten.json5 @@ -0,0 +1,48 @@ +{ + hexdoc: { + hexcasting: { + title: "헥스 책", + description: "헥스 책의 모든 내용을 한곳에.", + }, + + renderer: { + renders: "렌더링", + palettes: "팔레트", + + animated: "애니메이션", + monocolor: "단색", + gradient: "그라데이션", + segment: "분할", + + default: "기본", + turbo: "turbo", + dark2: "dark2", + tab10: "tab10", + }, + + pattern: { + show: "클릭하여 주문 표시", + hide: "클릭하여 주문 숨기기", + + multiplier: "${speedScale()}x", + paused: "일시 정지됨", + + not_supported: "사용 중인 브라우저는 패턴 시각화를 지원하지 않습니다. 패턴 코드: {}", + }, + + villager_requirements: { + any: "{level} 이상의 주민이 필요합니다", + professional: "{level} 이상의 {profession} 주민이 필요합니다", + }, + }, + + "block.hexcasting": { + slate: "빈 석판", + }, + + "tag.item.c": { + brown_dye: "갈색 염료", + glowstone_dusts: "발광석 가루", + wood_sticks: "나무 막대기", + }, +} From a5a32d266b3744451efa17c7047884febf853873 Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Wed, 26 Aug 2026 03:26:12 +0000 Subject: [PATCH 47/50] Mention weblate translation in changelog (#1279) title --- CHANGELOG.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f9e53eaf9..5d06ade4ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](https://github.com/FallingColors/HexMod/pull/1103)) @Robotgiggle - Added Media Reflection for checking media available to the cast ([#1235](https://github.com/FallingColors/HexMod/pull/1235)) @IridescentVoid - Added ko_kr translations ([#1187](https://github.com/FallingColors/HexMod/pull/1187)) @Bananamilk452 +- Added a variety of new translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274)) + - de_de by @Olfi01 and @miyucomics + - en_pt by @frostedlyre and @penguinencounter + - es_es by @Chichi and @ElNico56 + - fi_fi by @hauveli + - fr_fr by @Spectramaris, @Sixela963, @arsvenutia, @drawnbadden + - ja_jp by @ViktoriaNtro + - no_no by @ShyRasan123 + - pl_pl by @ManicTv and @Welesen + - sv_se by @hauveli ### Changed @@ -50,6 +60,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Updated zh_cn translations ([#995](https://github.com/FallingColors/HexMod/pull/995), [#1037](https://github.com/FallingColors/HexMod/pull/1037), [#1045](https://github.com/FallingColors/HexMod/pull/1045)) @ChuijkYahus +- Updated various translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274)) + - ru_ru by @DarkThunderer and @KOCTEP + - zh_cn by @ChuijkYahus ### Fixed From 3fdbe53e0aa0b535dfa5a077fab047d229588d3c Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Wed, 26 Aug 2026 04:33:59 +0000 Subject: [PATCH 48/50] Bump headlessmc versions (#1278) mc-runtime-test 3.1.1 -> 4.5.1 mc-server-test 1.0.0 -> 1.1.1 --- .github/workflows/pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 1fb36de8ed..d4bbac204c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -119,7 +119,7 @@ jobs: - name: Run MC test client if: matrix.env == 'client' timeout-minutes: 10 - uses: headlesshq/mc-runtime-test@3.1.1 + uses: headlesshq/mc-runtime-test@4.5.1 with: java: ${{ env.JAVA_VERSION }} mc: 1.20.1 @@ -131,7 +131,7 @@ jobs: - name: Run MC test server if: matrix.env == 'server' timeout-minutes: 10 - uses: headlesshq/mc-server-test@1.0.0 + uses: headlesshq/mc-server-test@1.1.1 with: java: ${{ env.JAVA_VERSION }} mc: 1.20.1 From 16d7744d716e26be528ac79b6ec2c397d7315ceb Mon Sep 17 00:00:00 2001 From: Robotgiggle <88736742+Robotgiggle@users.noreply.github.com> Date: Wed, 26 Aug 2026 04:36:15 +0000 Subject: [PATCH 49/50] Bump mod version to 0.11.4, fix Fabric gaslighting (#1281) - Fixes a mixin used to capture the camera frustum on Fabric - Adjusts the changelog entry for #1035 to be more accurate - Bumps mod version to 0.11.4 in appropriate places --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- CHANGELOG.md | 5 +++-- .../fabric/mixin/client/FabricLevelRendererMixin.java | 2 +- gradle.properties | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 13b520c691..e7f6dc31c7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -26,7 +26,7 @@ body: - type: input attributes: label: Hex Casting version - placeholder: eg. 0.11.3 + placeholder: eg. 0.11.4 validations: required: true diff --git a/CHANGELOG.md b/CHANGELOG.md index 5d06ade4ba..26dfda2544 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). -## [UNRELEASED] +## `0.11.4` - 2026-08-26 ### Added @@ -41,7 +41,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Changed the `media_consumption` attribute to only apply to player-based casting ([#987](https://github.com/FallingColors/HexMod/pull/987)) @Robotgiggle - Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight ([#1040](https://github.com/FallingColors/HexMod/pull/1040)) @Robotgiggle -- Changed the pattern limit to also include execution of non-pattern iotas like jumps ([#1035](https://github.com/FallingColors/HexMod/pull/1035)) @pythonmcpi - Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle - Updated and reorganized various entries in the guidebook to improve clarity ([#1199](https://github.com/FallingColors/HexMod/pull/1199)) @Robotgiggle - Added a new entry defining what a Hex actually is and how it can be represented on the stack @@ -50,6 +49,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Removed "Influences" and moved relevant info into "Hex Casting 101" - Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag ([#1023](https://github.com/FallingColors/HexMod/pull/1023)) @YukkuriC - All custom recipe displays now work with both EMI and JEI on all platforms, rather than only EMI on Fabric and only JEI on Forge ([#1206](https://github.com/FallingColors/HexMod/pull/1206)) @Robotgiggle +- The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](https://github.com/FallingColors/HexMod/pull/1035)) @pythonmcpi - Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](https://github.com/FallingColors/HexMod/pull/996)) @YukkuriC - Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](https://github.com/FallingColors/HexMod/pull/1025)) @Robotgiggle - Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](https://github.com/FallingColors/HexMod/pull/1080)) @Robotgiggle @@ -81,6 +81,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - Fixed Break Block being unable to break cobwebs on Fabric ([#1218](https://github.com/FallingColors/HexMod/pull/1218)) @Robotgiggle - Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](https://github.com/FallingColors/HexMod/pull/1273)) @DetermiedMech1 - Fixed the command to list all per-world patterns not working ([#1277](https://github.com/FallingColors/HexMod/pull/1277)) @Olfi01 +- Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](https://github.com/FallingColors/HexMod/pull/1281)) @Robotgiggle ### Internal diff --git a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricLevelRendererMixin.java b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricLevelRendererMixin.java index d6f1ff127b..5c05740577 100644 --- a/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricLevelRendererMixin.java +++ b/Fabric/src/main/java/at/petrak/hexcasting/fabric/mixin/client/FabricLevelRendererMixin.java @@ -27,7 +27,7 @@ public class FabricLevelRendererMixin { locals = LocalCapture.CAPTURE_FAILSOFT) private void snagFrustumFromLevelRenderer(PoseStack poseStack, float f, long arg2, boolean bl, Camera camera, GameRenderer gameRenderer, LightTexture lightTexture, Matrix4f matrix4f, CallbackInfo ci, - ProfilerFiller profilerFiller, boolean bl2, Vec3 vec3, double d, double e, double g, Matrix4f matrix4f2, + ProfilerFiller profilerFiller, Vec3 vec3, double d, double e, double g, Matrix4f matrix4f2, boolean bl3, Frustum frustum) { FabricClientXplatImpl.LEVEL_RENDERER_FRUSTUM = frustum; } diff --git a/gradle.properties b/gradle.properties index 10a627ebe8..e33af7cfc8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,7 +10,7 @@ jetbrainsAnnotationsVersion=23.0.0 minecraftVersion=1.20.1 kotlinVersion=2.2.21 -modVersion=0.11.3 +modVersion=0.11.4 # this is the version published to modrinth/cf i swear paucalVersion=0.6.0-pre-118 From 6b64165be30b3ed130c01eb74519bfd68247b762 Mon Sep 17 00:00:00 2001 From: object-Object Date: Wed, 26 Aug 2026 00:49:30 -0400 Subject: [PATCH 50/50] [Release] 0.11.4 release! ### Added - Added the `cannot_modify_cost` tag for patterns that should ignore the `media_consumption` attribute when calculating cost ([#987](https://github.com/FallingColors/HexMod/pull/987)) @Robotgiggle - Added config options to scale pattern costs per action and globally ([#1041](https://github.com/FallingColors/HexMod/pull/1041)) @Robotgiggle - Added a config toggle for the pattern wobble animation on active slates to improve performance ([#1017](https://github.com/FallingColors/HexMod/pull/1017)) @aloaloolaola - Added keybinds to flip forward and backwards in a spellbook ([#1028](https://github.com/FallingColors/HexMod/pull/1028)) @pythonmcpi - Added a config toggle to disable scrolling through spellbooks outside of the staff grid ([#1028](https://github.com/FallingColors/HexMod/pull/1028)) @pythonmcpi - Added Harmony Reflection, which pushes the value of the golden ratio ([#900](https://github.com/FallingColors/HexMod/pull/900)) @miyucomics - Added a config toggle (default false) for the effect that makes iota-holding items display their entire NBT data when Advanced Tooltips is enabled ([#1021](https://github.com/FallingColors/HexMod/pull/1021)) @Robotgiggle - Added a pattern display overlay for pattern-holding items (ie scrolls or slates) while holding shift in the inventory ([#879](https://github.com/FallingColors/HexMod/pull/879)) @SamsTheNerd - Added connected textures for Akashic Ligatures when using Continuity or Optifine ([#885](https://github.com/FallingColors/HexMod/pull/885)) @kineticneticat - Added type comparison patterns ([#1114](https://github.com/FallingColors/HexMod/pull/1114)) @IridescentVoid - Similarity Distillation and Dissimilarity Distillation for iota types - Surveyor's Distillation and Inspector's Distillation for blocks - Taxonomer's Distillation for entities - Sorter's Distillation and Stacking Distillation for items - Added Contemplation for escaping without the exponential growth of Consideration ([#1102](https://github.com/FallingColors/HexMod/pull/1102)) @IridescentVoid - Added Interjection, Meditation, and Recollection for advanced pattern-list creation ([#1103](https://github.com/FallingColors/HexMod/pull/1103)) @Robotgiggle - Added Media Reflection for checking media available to the cast ([#1235](https://github.com/FallingColors/HexMod/pull/1235)) @IridescentVoid - Added ko_kr translations ([#1187](https://github.com/FallingColors/HexMod/pull/1187)) @Bananamilk452 - Added a variety of new translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274)) - de_de by @Olfi01 and @miyucomics - en_pt by @frostedlyre and @penguinencounter - es_es by @Chichi and @ElNico56 - fi_fi by @hauveli - fr_fr by @Spectramaris, @Sixela963, @arsvenutia, @drawnbadden - ja_jp by @ViktoriaNtro - no_no by @ShyRasan123 - pl_pl by @ManicTv and @Welesen - sv_se by @hauveli ### Changed - Changed the `media_consumption` attribute to only apply to player-based casting ([#987](https://github.com/FallingColors/HexMod/pull/987)) @Robotgiggle - Changed Wayfarer's Flight and Anchorite's Flight to both cost 2 dust per unit, and enforced a minimum cost for Anchorite's Flight ([#1040](https://github.com/FallingColors/HexMod/pull/1040)) @Robotgiggle - Changed the Hasty Retrospection mishap to Absent Introspection as it's now used for anything that only works while parenthesized ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle - Updated and reorganized various entries in the guidebook to improve clarity ([#1199](https://github.com/FallingColors/HexMod/pull/1199)) @Robotgiggle - Added a new entry defining what a Hex actually is and how it can be represented on the stack - Changed "A Primer on Vectors" to provide its own information rather than linking to Psi's guide - Reordered "Escaping Patterns" to account for the newly added Contemplation pattern - Removed "Influences" and moved relevant info into "Hex Casting 101" - Updated the Flay Mind recipe display in EMI and JEI to cycle through all valid entities if the input is an entity tag ([#1023](https://github.com/FallingColors/HexMod/pull/1023)) @YukkuriC - All custom recipe displays now work with both EMI and JEI on all platforms, rather than only EMI on Fabric and only JEI on Forge ([#1206](https://github.com/FallingColors/HexMod/pull/1206)) @Robotgiggle - The pattern limit is now checked even when executing non-pattern iotas like jumps ([#1035](https://github.com/FallingColors/HexMod/pull/1035)) @pythonmcpi - Re-implemented the ability to extract stored media from items in trinket/curio slots ([#996](https://github.com/FallingColors/HexMod/pull/996)) @YukkuriC - Patterns involving entity look direction now compensate for the vanilla bug that causes projectiles and phantoms to report the wrong direction ([#1025](https://github.com/FallingColors/HexMod/pull/1025)) @Robotgiggle - Edified Panels are now crafted with 9 planks rather than 8 to avoid conflicting with the vanilla chest recipe ([#1080](https://github.com/FallingColors/HexMod/pull/1080)) @Robotgiggle - Drawing Evanition with nothing left to do will now undo the opening Introspection ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle - Book pages for patterns without input/output iotas will no longer display the type signature line at all ([#1118](https://github.com/FallingColors/HexMod/pull/1118)) @IridescentVoid - Consideration, Introspection, Retrospection, and Evanition now count towards the per-hex pattern limit ([#1172](https://github.com/FallingColors/HexMod/pull/1172)) @Robotgiggle - Updated Inline dependency from 1.0.1 to 1.2.2 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Updated Fabric Language Kotlin dependency from 1.9.4 to 1.13.7 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Updated Kotlin for Forge dependency from 4.3.0 to 4.12.0 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Updated zh_cn translations ([#995](https://github.com/FallingColors/HexMod/pull/995), [#1037](https://github.com/FallingColors/HexMod/pull/1037), [#1045](https://github.com/FallingColors/HexMod/pull/1045)) @ChuijkYahus - Updated various translations via Weblate ([#1251](https://github.com/FallingColors/HexMod/pull/1251), [#1261](https://github.com/FallingColors/HexMod/pull/1261), [#1265](https://github.com/FallingColors/HexMod/pull/1265), [#1269](https://github.com/FallingColors/HexMod/pull/1269), [#1272](https://github.com/FallingColors/HexMod/pull/1272), [#1274](https://github.com/FallingColors/HexMod/pull/1274)) - ru_ru by @DarkThunderer and @KOCTEP - zh_cn by @ChuijkYahus ### Fixed - Fixed a crash loop when trying to generate a creative-mode ancient scroll for a Great Spell whose per-world pattern hasn't been calculated yet ([#992](https://github.com/FallingColors/HexMod/pull/992)) @Robotgiggle - Fixed a crash when trying to generate a loot scroll for a Great Spell whose per-world pattern hasn't been calculated yet ([#1079](https://github.com/FallingColors/HexMod/pull/1079)) @Robotgiggle - Fixed Create Water and Create Lava causing the "position is forbidden to you" mishap when the position is actually just out of ambit ([#1029](https://github.com/FallingColors/HexMod/pull/1029)) @pythonmcpi - Fixed a broken translation key on the error message from a Shepherd Directrix ([#1013](https://github.com/FallingColors/HexMod/pull/1013)) @Teal-Wolf-25-v2 - Fixed the log spam caused by double pattern registration when joining a world ([#999](https://github.com/FallingColors/HexMod/pull/999)) @Real-Luxof - Fixed various incorrect documentation in the Hex Book ([#1010](https://github.com/FallingColors/HexMod/pull/1010)) @Robotgiggle - Fixed a broken translation key when trying to use Place Block with no placeable items in your hotbar ([#1010](https://github.com/FallingColors/HexMod/pull/1010)) @Robotgiggle - Fixed a potential chunkban when leaving a looping spell circle running for long enough ([#908](https://github.com/FallingColors/HexMod/pull/908)) @Stick404 - Fixed a potential issue on MacOS when calculating soulglimmer color ([#984](https://github.com/FallingColors/HexMod/pull/984)) @vgskye - Fixed the book page for the Inert Mindflay mishap incorrectly claiming it would kill unsuitable flay subjects ([#1081](https://github.com/FallingColors/HexMod/pull/1081)) @Robotgiggle - Fixed Pace Purification returning nonzero velocity on nonmoving items ([#1119](https://github.com/FallingColors/HexMod/pull/1119)) @IridescentVoid - Fixed Accessor's Purification returning false for scrolls in item frames ([#1115](https://github.com/FallingColors/HexMod/pull/1115)) @IridescentVoid - Fixed Break Block being unable to break cobwebs on Fabric ([#1218](https://github.com/FallingColors/HexMod/pull/1218)) @Robotgiggle - Fixed the zero vector not being listed as falsy on the Augur's Purification page ([#1273](https://github.com/FallingColors/HexMod/pull/1273)) @DetermiedMech1 - Fixed the command to list all per-world patterns not working ([#1277](https://github.com/FallingColors/HexMod/pull/1277)) @Olfi01 - Fixed a mixin issue that made gaslighting not work properly on Fabric ([#1281](https://github.com/FallingColors/HexMod/pull/1281)) @Robotgiggle ### Internal - The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20, by Robotgiggle in [#1043](https://github.com/FallingColors/HexMod/pull/1043). - Updated Inline dependency from 1.0.1 to 1.2.2, by Robotgiggle in [#1043](https://github.com/FallingColors/HexMod/pull/1043). - The mod now uses Fabric Loom 1.9, Gradle 8.11, and Kotlin 2.0.20 ([#1043](https://github.com/FallingColors/HexMod/pull/1043)) @Robotgiggle - Changed the internal implementation of Thoth's Gambit to use a `TreeList` for more efficiency ([#1031](https://github.com/FallingColors/HexMod/pull/1031)) @s5bug - Deprecated the version of `matchPattern` that takes a boolean argument since it always raises an exception ([#1002](https://github.com/FallingColors/HexMod/pull/1002)) @beholderface - `Iota` subclasses can now specify whether the iota should be displayed with or without commas when in a list ([#988](https://github.com/FallingColors/HexMod/pull/988)) @TheRobbie73 - Made the `getUsableStacks` and `getPrimaryStacks` methods in `CastingEnvironment` and its subclasses public ([#907](https://github.com/FallingColors/HexMod/pull/907)) @miyucomics - Improved handling for duplicate pattern signatures in hexdoc ([#1007](https://github.com/FallingColors/HexMod/pull/1007)) @object-Object - `CircleExecutionState` now stores the shape of the spell circle using two corners rather than an entire list of positions ([#908](https://github.com/FallingColors/HexMod/pull/908)) @Stick404 - Added methods in `Action` and `Iota` to define behavior when inside parentheses, and de-hardcoded the iota-escaping patterns ([#1047](https://github.com/FallingColors/HexMod/pull/1047)) @Robotgiggle - Added visitor methods to `Iota` to enable walking iotas in an extensible way ([#1191](https://github.com/FallingColors/HexMod/pull/1191)) @poolcritter --- build.gradle | 6 +++--- libs/CurseForgeGradle-1.3-hex.jar | Bin 0 -> 23179 bytes settings.gradle | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) create mode 100644 libs/CurseForgeGradle-1.3-hex.jar diff --git a/build.gradle b/build.gradle index 97cab8aa70..bd68600e3f 100644 --- a/build.gradle +++ b/build.gradle @@ -19,9 +19,9 @@ plugins { // Also it looks like property lookups don't work this early id 'fabric-loom' version '1.9+' apply false - id("at.petra-k.pkpcpbp.PKPlugin") version "0.2.0-pre-104" - id("at.petra-k.pkpcpbp.PKSubprojPlugin") version "0.2.0-pre-104" apply false - id("at.petra-k.pkpcpbp.PKJson5Plugin") version "0.2.0-pre-104" apply false + id("at.petra-k.pkpcpbp.PKPlugin") version "0.2.0-pre-112" + id("at.petra-k.pkpcpbp.PKSubprojPlugin") version "0.2.0-pre-112" apply false + id("at.petra-k.pkpcpbp.PKJson5Plugin") version "0.2.0-pre-112" apply false } repositories { diff --git a/libs/CurseForgeGradle-1.3-hex.jar b/libs/CurseForgeGradle-1.3-hex.jar new file mode 100644 index 0000000000000000000000000000000000000000..e10be61c7b9a90063adc5b796a6fe1f53b054267 GIT binary patch literal 23179 zcmbSyV~{ApvgUZsc;<|4+qP}nwtdF7ZQHhO+qQXj-tOJEd+$a(Y)5oQbVpX!kNWb< ztgo`=B!NMY004gd0+{)QsSWUR0sY(K=YsgTrG=IFsl{bPXn_Ib{@t((7*o667w8)E z#{m83{u%y%45j&H#6^S^m1v|z9;7EHq$H_n=3peLDW)f98WiXj8F!ENkAVI!Xa71Y z$d5A{W2b+b@Lz49|6yaK?_g=B@AefQbKO3xX zXZ{~Lp!lyiur_wmH_~^~|9?F3A$vp>{4573C;$N4f6J5fKU~rnTIoAFCMjvkBJv}B z7gIm>OXT7CyMa?G>4ElXLdnY$i1Q0VgvAJQ+JLt(PF+(0>V8V|FcGD{0)NU6GX_Bp z3p^fWra8V%yH00r;qvzQfY(MIK^ugU#@WpV=mh(5ch6|&P|kRFbdZ(@=d};cHhR zcHcIQ#8T#4~A)>rvHZ2H;Pe&))!Tgh=air(j2_ z$?8f6OXuL)+>31Roa;fWqGyu81u|I9qh8dQL7J*1IcF>|2lqA8Gt9g0+}7$KkObHd zQcp{Rx7cOaaRF^3@RNn%3pRVD3+xRck)V0B?o>KvIIr+`Pf@^k@8+G>W;xJB0S%Nw zvzmeAHx~!MR1;j=VuLe4XX(ExSk{;4OJ~{BMX;yS^E)_B<|}=_sCuB9eVl7%T@nne zsuV^RHXD(-dfy38_fzUhZs|ka|f7~aOu9@cD zW_w?YE*iBHa1Ti%&ARW;$R~eqXCRMbu`&8Wi69|Xw3A#aiV?FE3|IeZW^dA0l~rx) z87O1hl8uB=Oi65f#U;F;Vo91&azauH(k5K*k2aiE7~<-ZiR^AeO8s&XYj>K6zXCjS zZ>J4B)N={y;0zIq$~?is7p~acViyU2PKbmXLmMz?$t6~Jd)R#_G$ZZcED@huc6ObP zH+Vh~xJO9iC6po6E3*Sp(W54UYO{h0cxJO2O6q5g?BVTyLa{+|aMeg{T=rDi{5xO# zH`NHoJpM~;R&9RKHF+I#7^$iKk2n```ApapN48v|qgHI?j2I)*23e8r|6!MZ3-)vr zK3lOL;Me@H0pEWM_;L=m7RH873dUCYPUf~Yj{hqFvK0Rj04+g9Vo<_EQ2F_dMGWT! z!oLmWa53l>7k4*iv0DN*woF`;b9*EZr3;9@0elnhCY$-l!w__jwT>rWvL-Thdwf4Z zZjs=u3uBvO#|R^^1od^XeqBTC9Bp`h)K{T9T#T!F1mJ5|H&RK_AtmIhQO5NAmM3t=#4G`2buRU4@!3{1m)>KjR%=Zk z0jj2#${7pfAjAsM_d&9n?eaLn9xzgD>z=hILuZ*msoQRK`+kbz80eR|v|LJ}MlR!) z<$3tx!)3K-n}coNgaJyy+a$YfW9vH32Re^cJUKRD<9!b0xEY_zQKC{E{{B5MVZY-WGi(E9znV;&Nbcd&8OSW?FWN{!uE8g< zK?QZTGA6MHW)si!OfaVD)PuCgGG93BG4CF-i5UiiRPJ4Sj!?P9L(?;_ zFq#{BBqX_S5BGvNkDM5+M%^!+K&9N%&m*Ak+O#}!={i|*>w;yA;FuWSr-{*tzK>oN zDbX)4kkp8DR#6(qgq2Cb+pGNVOz5&5aK3{Upyy zkQyVpcXKEwAf0uqiE_aOJ#KCuq2>~(2y+3CnL}7*93M-)Z$NC1l}|%G&zM3?Iz%dw zm{*#RVhxwDU@V-V8Ijy8-*#!>O`@v&Im!nD;EV z_0g|c17+FSjlpXP)6WaH;T|mzol~p3>sGhxe+%{PNpFODE9*A?jb768zO%RS-h=nf znPT?rN;~(Z9>-O44Ae|%wKCg}`B)o`nyKD}Js?R1xOAox%j@n!Yu_f|?))!{{KG!~ zUJ;S~SE$I@&dOHb=>N&(^{aVC)jwcC1O@=${BQVCFm|;2;W1-j2M1e+f3TUtgay(M zUYKiKhL^+WdG;A0)QR}1v_he9@qXjeiHwe3TDI3@Nwil4m!HFblAuER?-Jm~#{9N@ zDeYTrjScp^*la&pJZpD;|Js1~bE1Zs8{`rw6G`I%1O`v+jil(|al1W|p=3U@Fx^~z+MzJ%F z67iIXg&43-@k~3Ke$by!DfWfp;C=sea+rA&`OTKp}hB< ztS)G>a_V(;Qj>6Lt$C9tTV0mwZa2r;&_Uzq9k{5YymY-ol!A6mCWm6B#$v+0%jaRj z+*AiUx-oC7J~iI6WL4`4ibeiSsE+6$XGmssTNpj)EsQG?+Yj(yM<Hchw_1mPRbHES%bH;3r9 z1yRkSb_MUhl)7>|t}Nz1Fwpwp48H#l7$`a$8X7w~nmAki0}JvK62ScMmFf?4^xe2~ zncStJ0jj!q`MH6=L>zK1U04b-(rOzh_j%pnLHYu4cSXaxEal|xc8e_AOUgZq-=D7D zKzn&Gl-5vRWaRY>o^8kt#-!U&p1De11!a5%)?ef!#LdB`?lJVu5Vfhh|Q=XFar zQkRHInR=r3fu{!;;r>Fr$UC$x_LF|USnUr~?;NHz+`<2u`l~Kk0@8jW`5X)Yfa*V6 zM!}!>b<($S`bRNRrEICVA%ethiGzaoi;PcT;TW`t#QK0me4&_xsGb@+%8I?&P(U}* z%G!!pz~M+)(nlpEjc8%|5&Tiq*+CVaFrjhbY!TPx1?#HI^SaA(#rOMZ0~g?We?+{H zE`GQ)oIa9qlBdbHxgq=|7^A$RU!Sa~5 zbxJ(NRB6&68mURp25Q>w+cwexkuBnl2}Ox&A8Vj|MtHeyz*PGKZzH;&$M<(2_BMod z$RwoS4r(*)J9I%&yRyETSBq+yzW9(QLuDHe>QXG!T_;9+x7}AX*Mm1Q?kI3cIdj3> z>Q=%vl9mD6z>DUleXC)6)huidWov(KJ5Sa^0dyl*wO$%Olm`QLv+5!DHRq=7!ZchM z+?#A1rUU7iuaJi@yqluhKob*>${hrcacZKe9LDpll=Nh50|57+}2=tFHh5BHYsOMxEeQJ#YE zxigM+H44;aO#C*ayZPN-t$-Rk8$_5FMBSypAXVX1sMN(PAoe5`S^?G0mxYCVJtb_lt|Qdq`BMvO zldBz3R6P{OIhiRR6=sN6n{atGYA1w93b`n+3P$DqP ztk#wZ8m;>`Uol_JCcUO&A#0~-uo`}Mkd)LWJ~g|37E3P&kXbDp5OGgIvuLNB^&*#B zhi8weQ;oR>sz}y%9kc~f(^)NW1Vse)i0@7W;u75|_nQFKz|)Z4Qs|$f^e3Td23CaK zu>Rte+SLrSgz(C^-BNsh8hnB2j{@nIeU%3~fv|;LD>0M)3(mw6Ha0(LhSTx<`*Ou? z0ygS^zHHx~YZ$XO!q!~ncB@wnp3?XDM(n10a1ctWyLS@5k%$LZ5w$U5-T11!Ilrn~ z;23_T33HwL>Y38ZIW)65Z)@fLuAPjzR&BuGQoG=H)&RrxE(!57j@A3ScjZIK%0GuV z9;BWk#ZP!k{iqG>|7nQ-o2nr4Z>oam|5O#^tej2FZT>;gD(bEaB1qpPb#YgrQ{$1Lw@CB7;v2DLQyqsc~RV8wE0V+N2i_JUCkGp>3E=X=A=~jt_v9! zk5}_0jiC`IIDtHXu(Ytr=m*XRtL#vZ6K)d3fN5f6`pZ6m&DhvU0Af^YtEN%S*1_BR zxktK;QgMJ97H*-%14W=aa`{VK6Vs+SL0{DI z4V{<>JGvQ zD)3fOT(Ez+eCGsTLe^EzhH!~c%9&ziKY57mDW^eyIm83=;mj2Q478yf#y)_JMHj57 zt}NJ7p69i{BWZ#}&C5lHm zG-QV+%7nFK4?R-iqzQrKf*HXCIYiN~B<7+sAnu2plsiH_^3tk^Az1W^u`YJWcjak< zFN~xpI)i(YYE;U=Ra5|6BI(U2PFzbxFF!{FIx(IrN&gnvdp{US5fTeL?tA~3X@ zyR$>9oknSlDhTJ1l=1)+@q1~u4Avu>T*=U3mKCb+7^+kmM`!Ua-k-IlxHvz3J!Uk8wF$IK�N)Ii?SQ_GJq?j6kZ$Oto z%U#~qrb{THFn8**I|;uj9$>)W-uIHgeO4n(Fb0pnfGj(|C!4~K;WU`d+lK7jKOBm; z4AooB{MuX)j$OAKM?)=M{}RC0gJ6_rs_CuO_gI+(ks6F2$Tk4N?0@EFArBd@JS2@R zMqZ_wncQq;f+%BRt1CaSY!yE(fiy+e;pUpBVYEfhzF}xsJ|kHeMS{1vvBKJ@**&ZG zW~GctJzrFrnq2)6o|fykEbw+8_8CJg*fo^;)e!sQP~WeToOH z-p5eQOKxzXAe29G$fC7Fjj*8KqeNM)93-fO{G_J7BL7g7r9I%_7P*7e zDH1(;L#@WI<{YlgPbsUy7(%qp5UIPy`F%C!rkFXCk#J{yhh4C`GltA5Z~f*^n$M9zGEW^-|0cFg-=+S!qOumcaXlLm*@hShKT(s zNpkd_&azmpKB~pnE+o0Il@5F7yYmNQ>5nZg{A8K_gjT>%7VGs zik-*E!1G8^2V2tXFcyon-iqD9XsynQJsdke&V?wdYhByL)SC}DkwwlUHkrj*$o!1| zLcxR0oJ!p#D?lM6SZ6k1{x?u!cB7m}A)mnHOIMnBRFxRMDGOMKlv1gA++)~b!?>NxS{fXZ`Wu0=?K(`J@``0&)1 zexRH+o>e|rv7Y3-i=jQGqr)NxBIdYp{WG2V8V}{uci*O7|5&t3c>|3z$*-8z>prRT zK<+~Yr-S3{-)Gz0`;9{T#+azf~NF zmQPGF55+v0nR|u?6{rvwi@IDRw#zfVqWzE$i(4G46GETZ#u8jQN5z2O*ahc0=W%fvaGYfs+`G~i`iIG z)gqkzF)-Rl(Pc|A3pFdZ{P?3{?uWn-F_GE8=;cfn=X#<@SO_W9cucYyITgq7C%DgB z3$%>2Da({P8tj{^8eGT!pouVQKsTm`?p66O5z~kliin7zT-;^*Ta*`l*D?B683#_^ ze@Vf*h;Uj*gjKB$-yWptO~Gu_*>&W)PuE_yFshR#ZCZB-(I-I|a$YNi*`?%G-Ffu6 z0oP@GB$Z#0xX^XUd6ugM<~Et~P@K*7j0|?2!Uu-tjT60FA6y#QFNIAry{|N75+y<8 zDax^@I{v=Hxa3dq>ms=pY|*=l+A;BgLH`WG4m*8OC^lkOU`4 zSZN-`+*5%fVwp9$!PG-i-kdL3YLFid6+t1UdP3pOsoCmumWUI9GM_Nz08M_3j>4@z za#f*>b>IQ4jM3EuiExmsq7QC= z_LZW0H9CYNG7%H@uIA z+)kEiWQO})IhwgVF2h}egpBbf&SX?+|9fFrjw(03kbQ_E>6OthS%~#AkCDFX&(fwGU9hi;la{=}x5dcAi9d1_Bju{omm%F>o@q?C^+CqhfP8ne^w4U1H81L|%VcEx^XHeb6Ce_3 zsr1&;{$?8%2tmii@#l3@En&~GLE}&S0rIh^`LgO+*KA4)S{ybC&glw;=ln3){g_{1 z5&b$YXgeB325mTbBOAOd_QN%99n5Zy#(Dce2M-b&j_T}Y{|RT{7)q-+y4*y;!P{XMo*b5H{B z`&%CO_1A_iRhRb~`m<;JLW;uq+$!6ZVxs@|u;puX*v+{RM*VLHVB1)S^uEaTXOe-= z200o=7nUTpA)s^m@Y+s|xJs0jaf9JHs3Zc5&2+_+fr7L}^QD$V@FM@Dn!>?%WQGC} z>#owcKT7EeMM~9p<@gZvVkVTyCA9OCv2?T$!~{x&q1g4J4iJZegT z*y>FayW^bG;zNrv9rzJuCzDmRixOGnl7}eK@HXeUN72({ZsH2&`W8LhR1-#R_>@v* zDM{|LP(E9xuD%B@%>QzI_Q6IJ!&u}j63aiO_+e9TPc=ZTW1RYZ<# z+h=zYq22_+N66|GSYyZS#doXK7m5@&)}xqx57)p!qw=X%3`O+5 z2+9;I_;~UnO-x&_u=1r@-17z!6$Xe7if`kZTPKl3)G7F6ttCdo+w?X5?G0J%vttrN zM2E`T&yb_~$eHKw8zTkm<5&%D)6BTbkO$~;EM?|KuRk4TxVWe{CT+P0(FC%e;y&7XcIZ_a28 zTM>dsRvfrA+DE!+J-Wlb01+pY*4+TqF`VkgHgjsZ2o;UnZ#jm^-aWO#Z1M6sfMn_-w%D+=~ASi z*LTs>)?4wkl(Vi8xD+YSct#~1>oKN>n_5;J=G9^)90YS!o^Nfq>E@tZ6UoZ6_Vl~& z>_e*FmzZ#@kv^twk4Q`(*LIU8aimGkaQ{N-DmAEsc3-=}Z%}h`;5a=%+QEqzWw(*d zxYqVJ_-#mtLzRy37>XsYsA|NPfDs`^#Edm3s2tch`5vsG0ZKo%TK^S11-m+BDJwD~ z;Ia(=?lK^~XAn97wXs<^X&S?}+MC7<(94(g{%cY>>%F=(htuxo;4NGkKFl6Fw#9); zGs0ObqTTbH6kLZ#x|%{>czok^XQfTSYX>lh~b}E-dB>G~cp@)A@QL40=!vV>h1JtlPu48~{2U{K6TQS3~PHWFyfO zZ<}1uX&!Uo!4(PEq;Z{X=6utoKE!|k1`_~#CjWIvV_tw~{EE_#=M`M~HXd=xTcfW? zp>*~o%H+9FaJTv~+dKgqBk{{qZjqI;`oWWvdC^vM7@SQq1@ukJ6@3IeJ%eW7T1Zc> zk2nGCT6tcxco)R3(O4rWsC3shc-eRkK(*rc)9Pz-`4abI#pzO)7N}SkABPd@P7%<& zxQ>LM>%(6Oo)n>sbkbN0sOClRl318r9=C3Q4$@nDu(glcUpFg2E$%hQAT;E^wDzHt zDz@rFZi3|sgu#m{{-kqkNPgp3ydcC}3#@MSwIE9~U)ff){%Md!wSu!8mgVy{PjlgK zstF$DL9R<53!O2_0|3NN`&$H#;?>&P$HlRQS_bcewltCGvb$cdIH~65wSK-*>)kQU?Uq{9k5AesXn19K$rEVYBzR&7EBj8yonB8rNwAN;{idY8E$RN2rd*225RytTvQP({~ ztX87Tsi)A;Eh3-M{y1;5OjrQ05@Pn{ov3}s`ucWn+=pWNj&Ot5-N$}YhTfY%8&-vk z`-|7$!~4@Japbb&RDKnrANrJ+f>&FxUy3DXX9ll=|4O1_@zb9{#DdON9T(~*))_hT zD%KfNN|9WV!PW8?6xWwI8Y8L5*AsS0dWstHRlt1LCm_FPZ2XxT?Aj9Pg_m)PFJWe*Gv}W_Hlpr0{C)W%buoo1x|5E| zQz^GH5ZNoUM~c60MsLdv?}%m0bkPm7^#1z894awgwDKG(5gjqr0GDpzOiE}RX(`SK z&~GJKaTthJdCutNiB^W*sdWf-FZpC1Lff>&;D>i z&3O^q9Afa%5}a+9gJ=`yp6W~wINJUB>!cwNYbvSV7SNJy9QpcQ24ImB^4_Dp7tG$D z^r+a3Mql%{UC;vM%Qcc0^6s%Sny-HW?0tm(YP`FOS!ufn2OBHN)|eS%_tid$`U|+?M*hy9jog@G%i2i zeX6Xr&xc=lfA*h~M1p_rp&qU~CfZK2zcN3v-*$Hggq)h+YhsX&&=2X!b0AYiZ0nlU zm-H#;mAl%#Bevr7DAdrx1Aj-P-jADB(Gt-jV;nM;g-R8#A#loLHyUVmRADb+kEv~5 zM-I1NR;MCEZ!BGS49HWep-KjFQ2QN9o<|$!)lMmG7PdeNR~&UM=Nc3TZP6BF1!D2@io88-3d*%zSOPMRnV$Lz8M{#)ywsL9L7*W<}PKIfpm?l*c*{aIT zM^Y(9a9yM>l^xhch>tnRQl`Lymb9JgY+6H2=qOd59G9<0wvE~B!lKFD%wGaS=p6w= zlYK6?51lYw=q_b~N>bBeXdeQdmN@dLL7O#{XdC3&L9MQAs8F>H0o_p5n$^E+m4Gs5 zP#l)`N`W;2OA|4yq8?X>taBk{v>(M#H(f}q6eB3a%%04TQ&5*BwUEL0=UmD_G{9w* zIGs~6p{=jbxDiVt7s6|P*7)=a(r;bbZJoX=f37gei3V-qqPB`YHCbsYwb-msQdY}Y zfw3w$|4Ds4wRLa*(X8*m4)fOhPfqE zop$JDdZe?^=g0m@!Nnjf)l?^9?I6I)$y=NwcD_S}k|&*aGP5mZY5GBA86W~$o z3$K|NFmE43!wi$1CNJY=WCkOhPEZNu(66T^?aHU`=*8k`rU4Wq8h^N1TA06V3%0=xJ6 zH%9{5-{Mmfg!-?~ke9@SfbBW)DUer>V`VXu#PsNfAwt#D5zVfG_xf^5^H^+L>?|y# zKQFaYLfPNySL18wrnpEj@dfUbi^G$RI<^Pqwy-R+*Fi}xa1btP`l3wSE#rc1Q=MqH zz{^d3ox)3r)Jh9G@p9|U29R78*&6$W2=ME+Uk=WxCq_HH*YB%^00cQfUa_A28N@MM zSz%_T+3IZ0E30m@cm8RYX=a9@c4!SC!Tufej z39nnb6+Tex?BCP}Kt!|a;b9NfA0sN|p=8xz+JPJ~iqK;??|S3~O5Z`+KJ`40nCly^ z;dhlM}Yz#N(0bA8~*Y@ zQbJ}qW$WMGLfrY7-iU1?H~Zx}dKWiUgs)T|gIOq&uS6dfE{(Ch0DM?IU#M8ePM%av z9!gI4+d0}(;Q$}=`I^%ey7;t!+~zJ|71nA*wA7Up_=-i*gj+j;3q2jVi=0a;CI^B? zcE4cku2tN~E$6U5f3w7UN_cx!fKu9@-Iy|^RxK-qSPRRzLb7h>b5bcZ0as-D>;d3J zp!-U%N*hFM%lT{YAV&u~+0)ffq(%JAZ!QZ`%2YQ`DhvqzLaw2!&uMlT&RzYcGS~i# zxp2r#kEtRnMB=S*vKtG{e)Ko(5stmcPf>!2cK*Iy{O|9Ic-+Q~1dW()!+Fen(E}{* za$WhA&dxmZCkN5E&PNnQYi|m5G0F(bP6HRwM#|sqzwR&5ns6*hsbm>!3`MxiM@q&~ z{xY9oujNx!mBTnw!<4~n3t}CDy^g@?1ik?$z!Ea!(e7WZPNUS(7>+koHdE(&z)>bV ztOkVT1!6b+{_PhvlfHWTynyy8Kb+1SMe=wp#KppTYnw@QDV z+-XA6Ljbq79P!ova?;5aRwe`Dp87PQkzW-}DZ%dMCzV=~>P3)qNOWt-_{>v2AORlS zA6G^qiwK07=LVd4Dnl!4x~`S-E0m4Msg}IVcs&OwMQJqw|4~I_2VBsf-LKhfJ}*Wu zhv8Di=tRkljc4dEt=^vAK^od=uyT5^+-!D2EE(#206#Q7#k63{V5HU^U-b?vphB8Q znPG7pK@f@6MZ<#h5|)}gh)r8a>8HudbUk*P{?G1m)F?Ixu|_T7hCrQJAvjs90&O)G zLTiAEaW8)v0{~8w=$YzRq2Nd3)r+|a6iP}ltIGG9*2;_oJ?`Ep##Fmp2&Ro*@1_Sg^tzhFU=&G>(culEM`e|rXdEnM9Uu;eHnDy>YyIl^ zCQ*v*uCf$q`S2~x+%8Ij=Fkjk zuwa(U$aHiq%){gU>bS)m8Jj|FH- z6p8Kr13n%${f5M9#im1Irth-7QjNkzZ#Ue7NdT`wJ#pX1surf;enl07#+l?iZ{W#=8VYV z!C6RpnRf!;AUj64QzX9eyhBXPQL3UX zMotiNNS$>CeI6&+t0y&<+RblNeAXB&Ygr)qo4q+AT0<=iQ`ENOP2N{=s)WQx7jF&q z-z@gWXHT%>O_&INcUQHM%E}CPjwHU>JpeN5UGWNV7^Q^A@oPl>jhhg91ztMc5ob)R zg&={=7Un;-R@B8{od~pqY?4YVABcqGb7LZjOoH*R)8e9Japoox0Hyvs*sG+97QP3O zHzOQ|!M71Gok9bRs$}Jofr%HqdGvXGMS{+L|7VrdO?hV0wM-Ff956YN?RC>Du zR-)fPwqmUMw#I&uY?{+%cLX;Og7LbD%@PNZ3Hm*5zIqzlP?+DK9+*munPg zUWHzM11I>7ioHO#>w| Mlb&jWq7W@NYZYbE+t>6crSs>d}E6(3Oy&lj)wfCKWw5 ztLunVo0&++k&}N1t*$%>vG|zZ*9ZZH|DJ2?ySuY}B@XblyuW#U5pxmcqr%ucLkZng z10Y`iX?#*5c3_#WV^Fo6{+c`Fy_+>C<Gf248Ix=-ZY5)wmftx*s1(YQ<_R0ZKkj`6 z-`VRmhkS)GAHUEsAJn2{Yin&Q-8v5Xog$}W{QNH>WoNkfX{OU%1Qmz@`e9t!SI*i8#$m!7Ac zH-?F_bPth-8gFK?Yt5@_`N95ynA~(8lQL@VDzFNcU0tQz-DTXvH=OUhF*rTBa96g4e3x-K&*f`=k0 z(d2uZEZxL6nXEn=T$w(I$6f5P#IagKD3cbBq-IUG6rzL~of-Kk6p%L^OD1TtD5rb^C^$dR)y<{o5G@LnsvuylMm1E=LNR%@(Kv`$q8n^2yWY^_kWeyONk zz9EOdcacohO%oD`U()?9C)DEWJcI#DjRBTFp7upIWwm zuPmZZRgf|rn`d3TPUAA+bbZ*gCy;-ln-NJQ!2SF#r)6_|PB6Np;A)@n_{>>e=5vAoMTv{sb~$zsoO_(# z={yp8O&|ARPzGB8|Fjp1#3i0BsD71T?Og=x*OuUfN!o33&<mytwMGehC;cnrgo#j1_?q0mb~5B)kBfeOxQafXiZl;kLPf= zpW?qb!dyGkKKE-%&PzhDB2qU)$7;phK`{hiMo0b(~0kZ zUvQb-D(2)@PfqO1+fb7_!*Sk;sg?w{s}qQ0senNGs0y%k7NJBhuaKF+Zu7hwX?S$1 z?s$uZ@5$k~JHCx#VJIXCXX3XE%Zzmh6B-m#iB^b=VoKg{(`Yti)^npN)LWaCxlZ5V z1Ik=PT2ouXf zo6b|pJI&VQl*>r|(?HI8GPuMO_Nr(;D{gM&sM1nv?N=>7IB!5#=mE@SP{uJ(h!9Ue zEngOBd@q&;Cu3UTy6`C>iitKME2cq9{Hx{BT>w_iW)IP`d7`R-cqeQMTYn~qoiRgL zZZQPe)ap8KE%R3AvAVRPe%MkH|qsl5}nWRUxk_AM9D|a z)LkQ_K=20qQ8`H_^b5P2+KKwQ48jKeLiiS<{jk&}sMD=Ez0N|uuk{k20v(1$TVk^> z?1e}E-n>y3x@BeQlW>BsupR3(oUyD^0B41>*T-TrC(C-)kZ4@iZ$h3iaEiWcf?9@}%~fm-LV^GHY| z34@v8!XCV8UI(iwM<5t}WO*va*W3sm5ekHa9a|(BHggG>d zBwDjMiX=GwCr9F}ikzuN4PI)C5yi2Ry+I4`bx^nKM4mFBR&SopJXvj`FNdel7j2K} zA$3cMBS+iDtU5`66#bk25AgUdk=grVpgmvNzO&uH`FTp@=&yS)8{) zc*B%DN1k;skD8iQS*<>ABPFbSdFzj|!WfYPc9f|*ZzjMgaWk2-0z~8G#_;)jp7K}| zSCZL`N!l##q*qjpPxxeEwRUegqQz3P(IHcgU^>x z%x2A)SxK4t2S{uDs$Te0t%^HP1Mm)Phhnu4u=q$M-DhZSE*jJc6MK~>*w|FnXv!;$ z%PzFtymqSV_xEI!iH^Cs{C5>3on-bxFNZq~K*nJkd}cWkO#!z)FLBVqhndq6z?EEM zp2F<(g4v9p6XF*}X{Qk4X-jM`@2uB5AOcFOGo|=4sa$FBfD++TyF~0MoR~NM!=tcZF0Bbq1K(-a-+Z-Aw>P2&$MQF zlA+d>_%d9O%vy@`sQaz$*QjDuJHRQI}0)5SF=m(|tkITH0z| za0x3pdNmw=UN~#XsLj1F$Vi^`QVP_gLQapH=Vh--WNXs5w4QFcWVbs%?cWZ#T;qBy zw7$=nL6g4yfgjg=-amsY9^7a4R2xaQA&lE7XXg4lgrQ7p%Dvp=x4CB6W)eGctq-_L zRt`TN>S~JtppL_vHh_=X*MZ?_xl@;G7xZC6XFwBF=Fn`4(>jA?1{`@>h3pwYLf>PYLxF8Y>IPeTWRUa-9`N7^_VmESI0kveT-EP`rFbn+Hk2`M=b>D( zt35hPm#c!$s8fI?2{L83%p-Bh9^-gNLp}=bE}=fL129LOIXRbD7M57@J6{fyDd5WG zMWo^myv%#k=u!gm@oDj5D%qkefb~2`gZ9+c3@egnj_yc)eSZRC$T@LF&3Sz`^Wrw( zJjd=l5K%v$@D@>5ReC{h&MV@KOeDBBh5)@kodI2qlxwVW`N&FQrb5R&OX0jdN?nmGicbHM>N|D|c?LHnkk?0CDf68l2uFOkxN3Xw%tPkfDYI{Lx zkF*rCXB~AiRW&}$BPs0OE}cv6y5nRTD{KWNgIh(F(-tJvl(7VJ;m)RkT{(WsWOD@% zm)4YaV2_vK>O;}Ocgk)~90Ph}iwpRB8$B+}*oM@kIQ|`W|9h3Y`S%XKYxDT|x`g+p zq=zftwEOt+%lprFn&^Ho--q(PPav)5*-jD-xWwZnDeYG5vTmuuIQ z){hw{m8{*$_%@tL>j~MamCNCYuy3HAxtW9)tZM{h+}%IB%2bWy2MI%DN{7F+8tn#5=#w8@QTv?c zKs&+>uM&YEE!(ZG5tO`gspL-%ieI&mr37yp=aHPR3L`XBqg0 zB^SBREe+gXyAwC_pPZjyMz2V8Dz1mPKs!~+KZI*E zv_6?%5ZMysG76N@BHkbH2Oyx^?tf_gYaP;CE(^S)cEt zKHgAfe7>ckR&J;dw!XZ;OZ#0D?@;eL_}{w|ExgvuU!m$p9IM(eVNi*=Ye|`JnM>wo zc5X4hKYhN7cV;J^B^WVRucczYHhuqqGws0L5(0k)<}>&-JN(&;AAfyg_zv6nEZcF6 z^_3~q9g6L8`{T>q>nnHa4qDt?JFe^Y=kNN=-^#l;Z{SbdVt3(#@Zs47SA`RNpAu<~ z9YkO+x1N2B1|X!z4CC>I8c3WZ-5o&X&645wDIaEixHn6YHtL4rRo-#k%^I287>Cw; z87FbMI@u^}IY7A1E5U>CW59JLst1_Tvq-z*PF>~P65T8c1@%i>8b#CRink8)D?29% zkc@Z+<$}7hGW09lts0bR#-lnkI!UcUkq+txlSto2-$*>>bzzG!xfc3quH5AC6SO6U zTnud5)97f%uL9U|$1tJ!=h?_~FYw{@#@05S2C1g^haqJiF;Fk|onhDVFfY`by_$-! zav|k1#=FcKl=2}90?@^g#i;T%?`r$0`I%S{#2!f;pP2ABZ;TOKJ+K9>BD1>j0>`8f z4P_o{d7XA8N=LhdsTnq8xjB^WP z%xdoQY-yYMuy@UJO^$12L+fgyzTO{^E{RlIXZ9%g9+=&T@qtT-Ggmlay4;+jpI2up zq3IHdylWDI1vc>n`635V$MO0dWt$sCm){#L8`h2kKfwKXBlZ`(YqYKC)K}?RbYiZ4 zJAP+h4b`J<)}j=^kqnTSa>g7w&(!OSPU|gn(3#EIHo3FP*f;1&v)J+(Ynt2*b?yU_ zr~243>+Mtu0+?lykD)&Cf}y54taN>w0!w<5?OD;-jU03QCZxh@C8(+`bLg3nBGIQ` zoGm-TWvhQfmtdJGKp-0O;5_bhDX(!{HJNkRa+W>5XsDJQO1!5|;@3~`N8~no?1(+3 zt{6V7;%}2wp}+Df^P_m@q9KE@zXYcJN?Qy7|4cbHUJ0gb20o!$%zU%Q9>(U~Mo66z~UI&fxoPmc(1Bpfyj$FM*#1*ICx|s%jq0)G#sj-|E9Kz8R+6 zavsVj;WI$qkd#j*lbrtDpYSI3Zti3T0@(frnTYWB=HY%b1}~$2uFsvvr&ywSPAh61 zyUl(|^|aZ(C=CcqJ*tI0>h3Y@cpI+GuEiNw6`F>~#aEavI=q4pBh1a6%w=O52Zq|q z29|uCKJ_ncA^P2yeM{^Cm@&tig74t(J`Dgt{M8Hg3R{QUWO{kce$M8p*(cc?c{6{y5&@$D3WyXXNQRq^jhe4%zC+@sgf6362%zowEuvzLT9 zp3?J(s}TebzWqk*3{C*Yd_v)=&m}xP`)pKD&R$sM8kWgj61HmGcbO{XoTS}#IWA_6 zurM2tDB>Zim*!!dfOaE6v!0n3^1&w*1&{A=U}z4ydqUZy!$~}|S>4LYo5#>ztq3`DW!N(20gHJv=yFwk za6XHC>ssd1fauVwVbEfpw^%*CbwVvQ2*A~TMZjq4aZqw0j&)Q;6$V#f$h>EjGNa9v z3#Ku8H(!3e^X&tFrG&$IViOlq=J|p?Xd}?6W9RZrUE{iziHbXNIrOC(rLEoB{P|Z5 z3opI`I8PrFV-4b^V=0+LUj;8FBc5G9$Rr1x1kSZP+n&lef-2^xHD^dfl9Jl?<;10SA$5*|#{uGjjwFv}78UoQ2q3Mm5%HDx2A>|N^>M=={^4TjbSw%o z^fxtd@gXe1do}BwGKsFa2S)F@)%9fbV&5;Cc85`0T)^EuqU$!UK_A9czLqxD3Oh#+ zl;z37vhyH`7Xau5b@1`-xXn;3H0w71bA(8pHP<868C9kel{ckhh-|z>&HAgs=xFDH zv_To{Q7YPdr~n$_dlGaOft%{qhRiZN$sH34C%V${Qd39WY@+s@3eO4=Yyx3(?nd+9 zUYKWUaAB;{=s%YuNY(ND4=>c}a-Lu~st5?{!EU63A$)?w#}1Gud02#qdTX$Cm3E!I z7_gbk;$X?~#UfXH6gW@wrWju+Eoeue8((}KjM_jwoMPxS<8}y$K#3!{FaQz6$jGK3 zLL7UpVA2!Auml70H!m1j+;J-Z=>908(VlZqmVf`vk3L+oU8l>LYJeU~HHRIeK&6`<_X8Xwh2R(%B+ zI?(j(5E{eCC&V$X^7V76860Q!dw;lM>oMViHLM#p9trkLW0NTd(>RJCNb?gh0+zj^ z@V-i;kqBRGE6eO_=Z$PJo9KJ$eDPk9s80kdP_}+}VeYZP-qBL}JMq}nl8kI{eaMry z9uCJrFN|xwYfxM7sWkaI`(jC(klBnFQvP}}c~x73iI8^9sOM`@muk^c%&H z`<#k-1de#S&I=D8oNOD4J^Q}GW?$lyBazv1!5jnXA15W6-)YEmgY%gpCxsZ5a|jH6 z;e|f+#r>(mbe}Rd>rZ@`{aQnlMkHA4aQA!4(o=12HyB3Z`Y?cj&|~x_iC)Td%^2wj1})l6)qW4 zcla+DK(BLL`Y46BhWGIEg|d5!nTh% zO47HZ3bXLlaYj8_G~oim0T#8Pl?Q5&6PfFegOYOBX#*fIksAY(e(EP-YcS_4a_-*a zXxGL~hECmV=`SkJrc6LconYhj7 z#~iWl+uN&BgpoEP<;>RH;?Vq(i;MXZ3MIU4Z>dnP%et1aKR(rI_3Sl_HtRK;BaTz< zk|1G^!}0N3cIl-ej&;5b>xZuq+I-ceJYSPwwd_Y3@uHU5T1gLQIV8iDk5?a*?Xpr5 z&~qW#*n1Hr?dPUEIk|0E@5(vCGfZjAgPM9hyEZ1XTcBrpOx2!QPWI0U^5_EcI|d&v zN0cRQ0s3=X2$d7);rNe+8ZWZ9=-zCVMVSrIp^1Y}9!`NX6GYx76yvngvDE}%H~h#i~2Mv#ndcc_<*$IYu3Ft3(ZYCmDgHc$C3ZC0J6h_daZ%;kx?Tfnrn}mm zIsx`3oUU3CC83>cE}si`>2*rj)w@&h$rEdkQZ#5;FR7wUsJz6{?QChN1eL;?h%Izr!=|Xt z$j?S+ngjKOv|mMF`Mj_T(kP+xd>x9-g=2Gd_M}iyu`0*hgVF}D1 zN}PnvmtKVY@UfwAW0CvRw}WU2Je=&Go22PJcT5^*;c#E5bhiNwwz}Ks_ngRWYU{?%A3EnuKDEZaf`&BXxCLgU}vtLjg<$s ztM|tKu%q<`dXpk?R6Fk~9O68O2w+@n7s5lf-!?b* z8FUK4vKDhi4{Jmw%Z~+Kw2;vBw>fi6Q-JQdkPy9s7r#_pARVuR=;wwn%eBs*$C{_cADPPAa7b%B8dg~aw{&I62x zu5sp6_tu@9IU^$zK^PSbe>+qAGHWWlDrpN(f5bI8_f1DGkmH(eyKS!%mCzobb;*L_ zQUfDR;r^X?yE^{+E;u~G7I0BUdr%(z^a*#-LUE`~e!N4aexPj~kT#%IRg%M*IQuw@hR^pp;*#d^=Jzk$<^(vJ@TpFm(@weQ{Ah|474wVeCt&c@M zchs8@X0y#Ei7yTgT`wJTx}_MbqQYFT2PCgLZCym~ztZA&Jq-{*s?%t%D!Vt({l@Ki z;Lw#4ewTEQ`IuD8sZ=G>kkx#dsE;%1?2X&3-Lynz%Z?q+(`=KPph-H+K=8Ut`zUgWTK&cK#}37ufkVb~B!ko4Xl* zP2n#yck!KHV>h#j-25?J9EwCC5@l>`49xo@CP zN?l6O=ika{fe-$Z?mw}glrEH1#qTcn$*1(UlkvUxKV>XZx>3^czPm}%{TH`?vhpZh zc2&tJtv_QI&-OKT&&YlG9@hMyD}5U@07pc3jQxThth@;iSXSfoaZ+-zW^jq zx=`+P`R;NE@Eez(?R%k=r+kL@T|QakH}XGyqW7cz&#K>7{XZ|C20vWvDQY353S}+) i-pkLwP$B=|{!L}n*P$hom3GO|oO=eztwh7!PyYk_tAZ#1 literal 0 HcmV?d00001 diff --git a/settings.gradle b/settings.gradle index 67a39ad9c4..f4b9f918e4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -10,6 +10,7 @@ pluginManagement { url = 'https://repo.spongepowered.org/repository/maven-public/' } maven { url 'https://maven.blamejared.com' } + flatDir { dir(file("libs")) } } plugins {