SANGRE Y PODER — CURRENT PHASE CURRENT_PHASE=21_regreso_pueblo phase_id = 21_regreso_pueblo current_location = Regreso con Karlein timeline = {"dia":4,"hora":"día"} phase_loaded = true current_phase_loaded = true This phase package is a derived execution view of canonical Sangre y poder resources. Canonical resources remain the source of truth. This is Creator material. It is not automatically player-facing output. === LOCAL PHASE SOURCE LOCK === LOCK_POSITION = START EXPECTED_CURRENT_PHASE = 21_regreso_pueblo CURRENT_PHASE=21_regreso_pueblo STARTUP_READY = true current_phase_loaded = true PRIMARY SOURCE: THIS COMPLETE PHASE PACKAGE FALLBACK: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/21_regreso_pueblo.txt SEARCH_ALLOWED = false REDDIT_ALLOWED = false MEDIUM_ALLOWED = false EXTERNAL_RUNTIME_REDISCOVERY = false If the answer exists in this phase: USE IT. If HTML phase cannot be read: USE THE PAIRED TXT FALLBACK. If both are unavailable and a significant answer cannot be produced from already-loaded canonical state: STOP rather than Search. PHASE_PAYLOAD_VERIFIED = false until the complete package has been read and both markers are detected: 1. CURRENT_PHASE=21_regreso_pueblo 2. === PHASE EXECUTION LOCK === Only after both checks: PHASE_PAYLOAD_VERIFIED = true current_phase_loaded = true === END LOCAL PHASE SOURCE LOCK === Contexto canónico íntegro de la escena Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/aventura/escenas/21_regreso_pueblo.json { "id": "21_regreso_pueblo", "titulo": "Regreso con Karlein", "dia": 4, "hora": "día", "lectura": "El Dalma emprende el camino de vuelta con Karlein. El niño puede caminar pero necesita descansos.", "datos_creador": { "duracion": "aprox. un día", "encuentros": "manual", "post_scene19_trigger": "continues inside Villapreston; only delivery to Asher cancels; Karlein death routes immediately to 24-C" }, "salidas": [ "22_casa_asher_final" ], "capsule_additive_source": "/ia/aventuras/sangre-y-poder/free/capsulas/21_regreso_a_villapreston.md", "merge_policy": "stable runtime plus compatible capsule additions; reconciliation rules have precedence", "global_time": { "persistent": true, "all_actions_advance_estimated_time": true } } Política local de fuente, percepción y diálogo social seguro Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/29_REGLAS_IMPROVISACION_NO_INVENCION.md at /local_phase_execution_policy/21_regreso_pueblo. { "policy_version": "1.4", "current_phase_id": "21_regreso_pueblo", "primary_source": "THIS COMPLETE PHASE PACKAGE", "paired_text_fallback": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/21_regreso_pueblo.txt", "external_sources": { "search": "forbidden", "reddit": "forbidden", "medium": "forbidden", "social_posts": "forbidden", "search_engine_snippets": "forbidden", "play_reports": "forbidden", "rule": "Once STARTUP_READY=true, none of these are runtime sources even if they appear accurate or were published by Saga Antípodas." }, "scene_description": { "player_visible_canon": { "lectura": "El Dalma emprende el camino de vuelta con Karlein. El niño puede caminar pero necesita descansos.", "visible": [] }, "rule": "Describe observable canonical elements from this package. Do not answer that description is unavailable when lectura or visible contains it. Do not add buildings, clues or significant facts." }, "perception": { "rule": "A Perception roll never creates a clue. A 4-5 partial result must still provide a useful partial selection of real observable information already present in lectura, visible or clues_available.", "forbidden_output": "Do not merely explain the protocol or say nothing can be invented when real observable information exists." }, "safe_social_improvisation": { "rule_id": "SAFE SOCIAL IMPROVISATION", "required_when": "The player addresses a present NPC and no literal sentence is scripted, but a natural minor response can be derived safely.", "decision_filter": [ "CREATOR TRUTH", "NPC KNOWLEDGE", "NPC PERSONALITY/MOTIVATION", "CURRENT STATE", "PLAYER OUTPUT" ], "allowed": [ "greetings", "farewells", "courtesy", "minor humor", "tone", "speech mannerisms", "hospitality", "reasonable emotional reaction", "evasive answers", "courtesy questions", "everyday conversation", "natural reformulation of facts the NPC already knows" ], "forbidden": [ "new clues", "new significant rumors", "new suspicions", "secrets", "identities", "properties", "genealogies", "new relationships", "enemies", "rewards", "missions", "historical events", "important locations", "conspiracies", "information the NPC does not know" ], "fact_rule": "Minor social color does not create a fact_id, clue, historical event or chronology entry.", "natural_response_rule": "Do not say the response is pending, no exact phrase exists, or I cannot invent when safe minor dialogue is possible.", "present_npcs": [ { "id": "asher", "name": "Asher", "personality": [ "refinado", "correcto", "contenido", "seco" ], "knows": [ "hábitos de Karlein", "Teolin fue el último en verlo", "recompensa 10 oros", "broche familiar", "la Colina del Amanecer pertenece a su familia", "según su último conocimiento la propiedad está abandonada", "el antiguo camino continúa hacia las montañas", "no existe actualmente una ruta comercial que haga rentable mantener actividad allí", "no tiene constancia de que viva nadie en la propiedad" ], "ignores": [ "secta", "Dumar", "pacto de sangre", "interpretación oculta del contrato", "historia completa de Dumar", "significado del mensaje de Dumar", "relación Karlein-eclipse", "contenido de Sangre y poder" ] }, { "id": "karlein", "name": "Karlein", "personality": [], "knows": [ "lo capturaron cuando Teolin se perdió", "le dieron una bebida desagradable", "oyó referencias a esperar a las lunas" ], "ignores": [ "sentido del ritual" ] }, { "id": "teolin", "name": "Teolin", "personality": [ "afectado", "culpabilizado" ], "knows": [ "relato verdadero de la desaparición" ], "ignores": [ "quién lo secuestró" ] }, { "id": "heldris", "name": "Heldris", "personality": [ "prudente", "metódico", "discreto", "estudioso" ], "knows": [ "visita del desconocido", "tomo de Raldorf", "Welter", "Bradel", "Dumar", "Sherat", "antiguo contrato y cláusula vinculada a la sangre de Welter", "tragedia del Cortijo del Amanecer", "mensaje de Dumar", "relación del mensaje con un eclipse de las dos lunas" ], "ignores": [ "que el visitante es el líder", "Rumal y Darfil son sectarios", "capilla oculta", "Sangre y poder" ] }, { "id": "rumal", "name": "Rumal", "personality": [], "knows": [], "ignores": [] }, { "id": "darfil", "name": "Darfil", "personality": [], "knows": [], "ignores": [] } ] }, "phase_load_verification": { "expected_current_phase": "21_regreso_pueblo", "required_markers": [ "CURRENT_PHASE=21_regreso_pueblo", "=== PHASE EXECUTION LOCK ===" ], "set_only_after_complete_read": { "PHASE_PAYLOAD_VERIFIED": true, "current_phase_loaded": true }, "failure_chain": [ "HTML phase", "paired TXT phase", "STOP" ], "never_after_failure": [ "Search", "Reddit", "Medium", "generic substitute scene" ] } } Filtro canónico Creador → Dalma Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/14_MATRIZ_DE_CONOCIMIENTO.json at /complete_matrix. { "principio": "La IA mantiene conocimiento del Creador separado del conocimiento del Dalma. Un dato solo pasa a conocimiento del Dalma cuando una escena, diálogo, observación, maniobra o deducción válida lo revela.", "reglas": [ "No usar nombres no conocidos.", "No revelar acontecimientos futuros.", "No revelar secretos de PNJ.", "No presentar conocimiento del Creador como inferencia del Dalma.", "Celdris puede revelar únicamente los destinatarios Serkan, Asher y Heldris; no procedencia ni contenido de los paquetes.", "Antes de heldris_disponible = true, una visita a su casa no obtiene respuesta y no se revela que Heldris está dentro estudiando.", "Drassel, Balanar y el contenido genealógico del paquete solo pueden surgir a través de Heldris cuando su investigación está completada.", "Asher puede confirmar la propiedad y su abandono, pero nunca la historia oculta de la Colina del Amanecer." ], "hechos_inicialmente_ocultos": [ "Rumal y Darfil son sectarios.", "El visitante de Heldris es el líder.", "Karlein está en la gruta.", "Existe Sangre y poder.", "El líder se transformará en vampiro.", "Los sectarios muertos se levantarán.", "El paquete de Heldris procede de Drassel, bibliotecario de Balanar.", "El paquete contiene el anexo genealógico que confirma la descendencia hasta Karlein.", "Heldris está dentro de su casa estudiando cuando no responde durante la mañana y primeras horas de la tarde." ], "hechos_revelables_por_evento": { "nombre_rumal_darfil": "solo si se presentan/son presentados o el Dalma escucha sus nombres", "lider_visitante": "Heldris solo puede confirmarlo al comparar descripción después; durante la aventura puede deducirse por coincidencia de descripción", "sangre_y_poder": "solo al hallar el libro", "pacto_sangre": "al leer el libro y relacionarlo con la cláusula de Welter", "nombre_heldris_por_celdris": "si el Dalma oye o pregunta por los destinatarios de Celdris; desde entonces puede averiguar públicamente que Heldris es bibliotecario/estudioso y dónde vive", "drassel_balanar": "solo cuando Heldris, ya disponible, explica de dónde recibió la documentación esa mañana", "anexo_genealogico": "solo durante la escena de revelación de Heldris; debe ser el último anexo que muestra antes de su conclusión", "colina_propiedad_abandonada": "Asher puede confirmarlo como información práctica/familiar después de que el Dalma pregunte por la propiedad; no añade historia oculta" }, "dia2_celdris_heldris": { "celdris": { "conoce": [ "Bleida", "ruta de reparto", "destinatarios Serkan, Asher y Heldris" ], "no_revela": [ "procedencia", "contenido", "investigación de Heldris", "genealogía", "Colina del Amanecer", "secta", "eclipse", "ritual" ] }, "bleida": { "puede_saber": [ "quién es Celdris", "Celdris es mensajero habitual", "quién es Heldris a nivel público", "dónde vive Heldris" ], "no_sabe": [ "contenido del paquete de Heldris", "qué investiga Heldris", "qué conclusión alcanzará esa tarde" ] }, "heldris": { "antes_paquete": "Posee investigación histórica pero no puede confirmar el linaje de Karlein.", "despues_estudio": "Confirma la descendencia, relaciona el secuestro con la sangre y comprende la importancia del eclipse." }, "asher": "Conoce la propiedad y su estado práctico; desconoce la historia oculta." } } PNJ relevantes — objetos canónicos exactos Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/13_PNJ_SANGRE_Y_PODER.json at /pnj[relevant_to_phase]. [ { "id": "asher", "nombre": "Asher", "raza": "Humano", "rol": "Padre de Karlein, terrateniente", "personalidad": [ "refinado", "correcto", "contenido", "seco" ], "interes": "Recuperar a Karlein", "sabe": [ "hábitos de Karlein", "Teolin fue el último en verlo", "recompensa 10 oros", "broche familiar", "la Colina del Amanecer pertenece a su familia", "según su último conocimiento la propiedad está abandonada", "el antiguo camino continúa hacia las montañas", "no existe actualmente una ruta comercial que haga rentable mantener actividad allí", "no tiene constancia de que viva nadie en la propiedad" ], "cree": [ "Serkan podría estar implicado" ], "ignora": [ "secta", "Dumar", "pacto de sangre", "interpretación oculta del contrato", "historia completa de Dumar", "significado del mensaje de Dumar", "relación Karlein-eclipse", "contenido de Sangre y poder" ], "restriccion_colina": "La información sobre la propiedad es práctica/familiar. No conoce su historia oculta." }, { "id": "karlein", "nombre": "Karlein", "raza": "Humano", "edad": 8, "rol": "Niño secuestrado", "sabe": [ "lo capturaron cuando Teolin se perdió", "le dieron una bebida desagradable", "oyó referencias a esperar a las lunas" ], "ignora": [ "sentido del ritual" ] }, { "id": "teolin", "nombre": "Teolin", "raza": "Humano", "edad": 8, "rol": "Mejor amigo de Karlein", "personalidad": [ "afectado", "culpabilizado" ], "sabe": [ "relato verdadero de la desaparición" ], "ignora": [ "quién lo secuestró" ] }, { "id": "heldris", "nombre": "Heldris", "raza": "Humano", "rol": "Bibliotecario e historiador local", "personalidad": [ "prudente", "metódico", "discreto", "estudioso" ], "sabe": [ "visita del desconocido", "tomo de Raldorf", "Welter", "Bradel", "Dumar", "Sherat", "antiguo contrato y cláusula vinculada a la sangre de Welter", "tragedia del Cortijo del Amanecer", "mensaje de Dumar", "relación del mensaje con un eclipse de las dos lunas" ], "ignora": [ "que el visitante es el líder", "Rumal y Darfil son sectarios", "capilla oculta", "Sangre y poder" ], "estado_conocimiento_dia2": { "antes_paquete": [ "sospecha que los elementos históricos pueden estar relacionados", "no puede confirmar que Karlein pertenezca a la línea de Sherat" ], "paquete_manana": "Recibe de Drassel, bibliotecario de Balanar, el último anexo necesario para comprobar documentalmente la genealogía.", "durante_estudio": "Permanece aislado y concentrado; no responde a visitas y el Creador no revela que está dentro.", "pocas_horas_antes_puesta_sol": [ "confirma Sherat → descendencia posterior → Asher → Karlein", "relaciona el secuestro con la línea de sangre", "comprende la importancia del eclipse inminente", "considera urgente advertir al Dalma" ] }, "restriccion_temporal": "No desarrolla la revelación completa hasta heldris_disponible = true, a pocas horas de la puesta de sol.", "ultimo_anexo": "El anexo genealógico recibido de Drassel esa mañana es el último documento que muestra antes de exponer su conclusión." }, { "id": "rumal", "nombre": "Rumal", "raza": "Humano", "rol_publico": "Viajero hacia Gudur en busca de nueva vida", "rol_secreto": "Sectario", "secreto": true, "objetivo": "Bloquear al Dalma en la Gruta del Sacrificio" }, { "id": "darfil", "nombre": "Darfil", "raza": "Medio Elfo", "rol_publico": "Viajero hacia Gudur en busca de nueva vida", "rol_secreto": "Sectario", "secreto": true, "objetivo": "Bloquear al Dalma en la Gruta del Sacrificio" } ] Control local de pistas Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/22_PISTAS_Y_DEDUCCIONES.json at /pistas[localized_to_phase]. { "clues_available": [], "clues_already_known": "state.pistas intersect clues_available ids", "clues_not_available_yet": [ "anuncio", "rumores_serkan", "broche_retrato", "broche_bosque", "nombre_heldris_por_celdris", "anexo_genealogico_heldris", "heldris_tomo", "hoguera_cortijo", "puerta_secreta", "libro", "rumal_darfil_cortijo", "asher_colina_abandonada" ], "rule": "A Perception roll may reveal only a conditionally available canonical clue or real environmental information in this package. Never create a new clue." } Mappings JPG oficiales disponibles en esta fase Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/32_ASSET_MANIFEST.json at /scene_card_assets/21_regreso_pueblo. { "rule_id": "OFFICIAL_CARD_VISUALIZATION_RULE", "state_field": "revealed_card_assets", "visible_url_text_required": true, "visible_output_contract": "The visible response must literally contain both https://sagaantipodas.com/ and .jpg. A named link, citation or source card is not sufficient.", "equipment_card_assets": [], "enemy_card_assets": [ { "enemy_id": "bandido", "card_id": "bandido", "card_name": "Bandido", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bandido.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bandido.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Bandido:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bandido.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." }, { "enemy_id": "hormiga-tanque", "card_id": "hormiga-tanque", "card_name": "Hormiga Tanque", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/hormigatanque.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/hormigatanque.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Hormiga Tanque:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/hormigatanque.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." }, { "enemy_id": "dragol-de-las-montanas", "card_id": "dragol-de-las-montanas", "card_name": "Dragol de las Montañas", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/dragol.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/dragol.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Dragol de las Montañas:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/dragol.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." }, { "enemy_id": "lobo", "card_id": "lobo", "card_name": "Lobo", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/lobo.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/lobo.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Lobo:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/lobo.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." }, { "enemy_id": "bolg-de-las-montanas", "card_id": "bolg-de-las-montanas", "card_name": "Bolg de las Montañas", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bolg.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bolg.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Bolg de las Montañas:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/bolg.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." }, { "enemy_id": "arana-gigante", "card_id": "arana-gigante", "card_name": "Araña Gigante", "asset_type": "official_jpg", "asset_path": "/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/arana-gigante.jpg", "official_jpg_url": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/arana-gigante.jpg", "visible_url_text_required": true, "output_contract": "Carta oficial — Araña Gigante:\nhttps://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/assets/enemigos/arana-gigante.jpg", "reveal_condition": "enemy_revealed_to_dalma = true after the encounter enemy is determined and perceptible/recognized", "spoiler_lock": "Do not expose card name or URL before enemy_revealed_to_dalma = true.", "repeat_rule": "After legitimate reveal, print the absolute JPG URL literally in visible response text. Show automatically once per card_id; one URL is sufficient for multiple enemies using the same card." } ], "inventory_listing_rule": "Text inventory does not automatically display all URLs. If the player explicitly asks to see the visible cards, provide these official JPG URLs.", "enemy_spoiler_rule": "Never expose an enemy card name or URL before enemy_revealed_to_dalma = true.", "missing_asset_rule": "Record MISSING_CARD_ASSET, do not invent a URL, do not generate art, and continue play.", "generation_rule": "NEVER GENERATE CARD ART." } Reglas acumulativas y reconciliaciones autorizadas Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/42_CAPA_FREE_RUNTIME_ACUMULATIVO.md # Sangre y poder — Runtime acumulativo y Capa Free ## Autoridad El runtime estable permanece como baseline. Las 24 cápsulas Free aportan contexto, estados, controles temporales, límites de conocimiento y bifurcaciones compatibles. Las reconciliaciones acumulativas de esta página prevalecen sobre cualquier cláusula original incompatible de una cápsula. `RUNTIME_CAPABILITY_PROBE_FIRST = true` `PASS_SELECTS_FREE = true` `NO_PASS_ALONE_AUTHORIZES_COMPLETE_RUNTIME = true` `AMBIGUOUS_PARTIAL_TRUNCATED_OR_UNKNOWN_SELECTS_PASS_AND_FREE = true` La Capa Free se encuentra en `/ia/aventuras/sangre-y-poder/free/`. Su manifest y router enlazan 24 documentos Markdown completos; ningún asistente necesita interpretar DOCX. ## Reglas transversales - `GLOBAL_TIME = PERSISTENT`: todas las acciones consumen tiempo estimado y los eventos duros no se desplazan artificialmente. - `null != false` y `null != 0`: un estado no reconstruible continúa desconocido. - `PLAYER_CONTROLS_DALMA_SPEECH = true`: separar hechos, afirmaciones, conocimiento y creencias. - La densidad narrativa se adapta al turno actual, nunca al canon ni a la dificultad. - Antes de toda transición se guarda el estado completo; las escrituras relacionadas se realizan atómicamente. - Durante una reconstrucción Free, si resulta imprescindible mostrar un mensaje intermedio, se usa únicamente «Realizando tareas de Creador...» y se lee la cápsula íntegra antes de responder. - La infraestructura es invisible durante la ficción. ## Escenas 01–19 Cada paquete phased integra como fuente local la cápsula Markdown de su escena. La cápsula amplía el runtime sin borrar el contenido publicado. Se conservan ambientación, PNJ, pistas, contratos, negociación, comercio, descanso, violencia urbana, consultas, genealogía, eclipse, viaje, encuentros, Cortijo, capilla, libro, seguimiento, gruta, combate, inventario y PX. ## Comercio conciliado `FINAL_STORE_CATALOG = PUBLISHED_CURRENT_CATALOG UNION CAPSULE_COMPATIBLE_ADDITIONS`. Las listas resultantes son cerradas: una tirada o negociación no crea mercancía. `Saco sin fondo` permanece como stock nominativo de El Cazador Precavido aunque esté excluido del comercio genérico. `Maza de guerra` se añade a Punta de Lanza como excepción nominativa de 3 Òros y 2 Platas sin elevar el límite general. Una carta puede permanecer disponible en varias tiendas. ## Cortijo idempotente La escena 15 conserva zonas de descanso, cuerdas, yesca, aceite y tela con símbolo. La escena 20 realiza una segunda exploración o contextualización: puede precisar camastros, herramientas, restos de comida y semejanza entre símbolos, pero nunca duplica un hallazgo previo. La identidad y localización de la tela se preservan. ## Clímax híbrido La ruta publicada es el comportamiento por defecto. Rumal y Darfil bloquean el paso y el líder continúa el ritual. Si el segundo sectario cae sin que el Dalma haya abierto antes una vía alternativa, no existe una acción gratuita intermedia: sacrificio y transformación se resuelven inmediatamente. Antes de ese punto el jugador puede intentar una intervención legítima. Se resuelve con posición, amenazas, tiempo, reglas y recursos reales. `RITUAL_PROGRESS` utiliza `CURRENT_TIME`, `ELAPSED_TIME`, acciones, tiempo de combate, posición, demoras y variante de entrada. La cautela razonable no es demora automática; la dilación deliberada sí puede agotar la aproximadamente una hora de margen. El asset Líder del Bastión es sólo visual. `PRE_TRANSFORMATION_LEADER_STATS = undefined`; no se heredan estadísticas, habilidades, equipo, identidad, nombre ni comportamiento. ## Divisor de escena 19 - Antes de 19, el eclipse activa 24-A publicada. - Durante 19, el clímax permanece en 19. - Después de completar 19, A queda deshabilitada permanentemente. Al completar 19 se registra el momento real y un deadline en la medianoche al final del día siguiente. Entrar en Villapreston no lo cancela. Sólo `karlein_delivered_to_asher = true` cancela el disparador. Si vence con Karlein vivo sin entregar, se activa 24-B. Si Karlein muere después de 19 y antes de entregarlo, se activa inmediatamente 24-C. ## Demonio Base V13/F6/R6/I6. Con Mandoble flamígero, Coraza de acero mágico, Escudo de los Hacedores y Anillo de Piedra Negra: V13/F14/R13/I8. TR +4. Miedo aplica −1 F/R/I al Dalma sin alterar Vida máxima. Drenar recupera 2 Vida al causar daño real, máximo 13. Sin vida impide aturdimiento y anula venenos/pociones. La curación externa es imposible. La huida no existe ni genera tirada. La resolución publicada Pifia del Demonio + 666 del Dalma conserva su victoria inmediata y transferencia de cuatro objetos. Ese botín no se extrapola a otra victoria. ## Entrega y epílogo La entrega a Asher actualiza en una operación `karlein_delivered_to_asher`, `karlein_with_dalma`, contrato, búsqueda y disparador Demonio. El epílogo publicado sigue ofreciendo Templo y Heldris/libro. `XP_LEDGER` se liquida una vez; el premio específico de final exitoso permanece en +2 PX. Inventario, Vida, PRI, gastos y consecuencias se conservan hasta el cierre real. ## Créditos exactos Esta aventura ha sido creada por Víctor Pedro Lucio Blanco, creador de Saga Antípodas Si quieres publicar tus historias como partidas de rol adaptadas a este sistema de juego y al universo de Saga Antípodas, contacta con la Saga. Instagram: @dj_rol_master Ampliación completa de escena — cápsula Free reconciliada Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/capsulas/21_regreso_a_villapreston.md === FREE LIMITED MODEL EXECUTION HEADER === FREE_PROTOCOL_REQUIRED = true Protocol: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/protocolo/ Protocol raw: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/protocolo/PROTOCOLO_FREE.md Router: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/router/ Manifest: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/manifest.json CAPSULE: Cápsula 21 / Capsula 21 CAPSULE_ID: 21_regreso_a_villapreston SCENE: 21_regreso_pueblo PHASE: 21_regreso_pueblo DAY: 4 TIME: día LOCATION: Regreso con Karlein ENTRY CONDITION: - canonical transition from one of: 20_refugio_cortijo - or recovered history/state selects this scene PLAYER CAN SEE NOW: - El Dalma emprende el camino de vuelta con Karlein. El niño puede caminar pero necesita descansos. PLAYER ALREADY KNOWS: - Only facts present in the current structured state and legitimately revealed during this game. - PREVIOUS TEST SESSION != CURRENT GAME STATE. CREATOR KNOWS BUT MUST NOT REVEAL: - Consult the canonical scene, plot and knowledge matrix; filter every output through current state. - CREATOR KNOWLEDGE != DALMA KNOWLEDGE. IMPORTANT NPCS: - None declared in the compact canonical scene record. AVAILABLE CLUES: - Only clues whose payload trigger is satisfied and recorded in current state. IMPORTANT TRIGGERS: - the current action establishes a canonical transition - allowed targets: 22_casa_asher_final NO-ROLL INFORMATION: - The scene opening and obvious visible elements above; never require a roll for information declared automatic in the payload. ROLL-DEPENDENT INFORMATION: - Read the complete payload and, when necessary, the canonical rules. A roll detects existing facts; it never creates clues. STATE CHANGES: - Apply only changes explicitly produced by the capsule, rules and current player action; then persist the structured state. ALLOWED EXITS: - Cápsula 22 NEXT CAPSULES: - https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/router/#capsula-22 IF DATA IS MISSING: follow canonical resource links below. Set NEED_DATA = true only for significant required data. CANONICAL_LOOKUP_MAP - scene: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/aventura/escenas/21_regreso_pueblo.json - phase: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/21_regreso_pueblo.html - rules: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/06_REFERENCIA_RAPIDA_REGLAS_IA.json - manual: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/05_MANUAL_COMPLETO_ANTIPODAS.md - creation: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/03_RAZAS_PROFESIONES_CREACION.json - equipment: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/09_EQUIPO_INICIAL_DISPONIBLE.json - cards: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/07_CARTAS_NIVEL_I.json - card_assets: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/32_ASSET_MANIFEST.json - npcs: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/13_PNJ_SANGRE_Y_PODER.json - knowledge_matrix: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/14_MATRIZ_DE_CONOCIMIENTO.json - plot: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/10_SANGRE_Y_PODER_TRAMA_CREADOR.md - complete_adventure: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/17_AVENTURA_COMPLETA_SANGRE_Y_PODER.md - chronology: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/11_SANGRE_Y_PODER_ESTADO_CRONOLOGIA.json - clues: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/22_PISTAS_Y_DEDUCCIONES.json - anti_blocking: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/23_SISTEMA_ANTIBLOQUEO.md - improvisation_rules: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/29_REGLAS_IMPROVISACION_NO_INVENCION.md - runtime_state_schema: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/28_ESTADO_DE_PARTIDA_SCHEMA.json - free_state_schema: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/free/state-schema.json DO NOT INVENT CANON. DO NOT SEARCH FOR ANOTHER CAPSULE GENERICALLY. USE THE FREE ROUTER. READ THE COMPLETE CAPSULE WHEN ACCESS ALLOWS IT. CAPSULE_HEADER_LOADED = true CAPSULE_PAYLOAD_VERIFIED = false until CAPSULE_PAYLOAD_END has been read. === END LIMITED MODEL EXECUTION HEADER === CAPSULE_PAYLOAD_START Fuente de origen: `Capsula_Free_21_Regreso_a_Villapreston.docx` Jerarquía: runtime estable + decisiones acumulativas expresas + ampliaciones compatibles de esta cápsula. ## Reconciliación acumulativa obligatoria Tras completar la escena 19, entrar en Villapreston no cancela el contador del Demonio: sólo `karlein_delivered_to_asher = true` lo cancela. La muerte de Karlein antes de la entrega activa inmediatamente la variante 24-C y no el cierre terminal antiguo. El deadline post-19 es la medianoche al final del día siguiente al clímax, con independencia de desvíos previos. # SANGRE Y PODER Cápsula Free 21 — Regreso a Villapreston Documento completo de ejecución de viaje | PRINCIPIO DE ESTA ESCENA | | --- | | La Cápsula 21 comienza únicamente cuando el Dalma abandona realmente la Colina del Amanecer con intención de devolver a Karlein a Villapreston. Resuelve la marcha de regreso, el tiempo real, un máximo de un encuentro, descansos y conversaciones durante el trayecto. No controla el reencuentro con Asher ni la recompensa. El agua no se contabiliza: se entiende que un aventurero dispone normalmente de agua suficiente para su hidratación. Si el Dalma abandona deliberadamente Villapreston como destino y continúa con Karlein, se activa un disparador secreto: a la siguiente medianoche Karlein se transforma en Demonio y la partida pasa al Final alternativo del Demonio. La muerte del Dalma o la muerte de Karlein antes de esa transformación son finales terminales de la aventura. | ## 1. Identificación | SCENE_ID = 21_regreso_villapreston TITLE = Regreso a Villapreston ORIGIN = Colina_del_Amanecer DESTINATION = Villapreston DISTANCE = approximately_40_km GLOBAL_TIME = PERSISTENT CANONICAL_PREVIOUS = CAPSULE_20_REFUGIO_CORTIJO CANONICAL_NEXT = CAPSULE_22_ASHER_FINAL | | --- | La distancia de referencia es la misma recorrida en la ida: aproximadamente 40 km. La duración base es aproximadamente una jornada completa a pie, pero CURRENT_TIME y las acciones reales siempre prevalecen sobre cualquier referencia narrativa. ## 2. Alcance de la cápsula La Cápsula 21 controla: - Salida real de la Colina y hora efectiva de partida. - Marcha de regreso con Karlein. - Comida, pausas, descanso y cambios de equipo durante el camino. - Un máximo de una comprobación de encuentro y un máximo de un encuentro en esta instancia de viaje. - Combates derivados de ese encuentro. - Desvíos, atajos y cambio de destino. - Disparador secreto de medianoche si se abandona Villapreston como destino. - Transformación narrativa de Karlein y transferencia al Final alternativo del Demonio. - Final terminal si Karlein muere antes de transformarse. - Final terminal si el Dalma muere. - Llegada física a Villapreston y transferencia a la Cápsula 22 si el Dalma lleva a Karlein con Asher. No controla la reunión final con Asher, la recompensa, el epílogo ni el cierre normal de la aventura. ## 3. Estado heredado Antes de narrar la salida, leer y conservar todo el estado acumulado: - CURRENT_DAY, CURRENT_TIME y ELAPSED_TIME. - STATE y REVEALED_STATE. - Vida actual/máxima y PRI actual/máximo. - Atributos, capacidades, equipo, inventario, consumibles, dinero y efectos persistentes. - Estado de Karlein: vivo, rescatado, despierto, con el Dalma o no. - Estado del libro Sangre y poder y de la tela oscura si fueron recogidos. - Estado final de Rumal, Darfil y el Vampiro. - Raciones y otros recursos mecánicos que sí se contabilicen. - PX/eventos ya registrados y cualquier modificador persistente. | PRESERVE_ALL_PRIOR_STATE = true DO_NOT_RESTORE_LIFE_OR_PRI_ON_SCENE_ENTRY = true | | --- | ## 4. Recursos canónicos auxiliares Manual — Antípodas, juego de rol con cartas: https://sagaantipodas.com/ia/juegos/antipodas-juego-rol-con-cartas/manual/ Trama del Creador — Sangre y poder: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/docs/10_SANGRE_Y_PODER_TRAMA_CREADOR.md Tabla adaptada de encuentros de campo abierto: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/41_ENCUENTROS_CAMPO_ABIERTO.json Consultar fuentes auxiliares sólo cuando una acción requiera precisión mecánica o de trama. No utilizarlas para adelantar información que el Dalma todavía no conoce. ## 5. Condición real de entrada La 21 no comienza simplemente porque haya amanecido. Se activa cuando el jugador declara una salida efectiva hacia Villapreston o una intención inequívoca de devolver a Karlein al pueblo. | IF player_starts_return_to_Villapreston: STATE.return_to_villapreston_started = true STATE.return_departure_day = CURRENT_DAY STATE.return_departure_time = CURRENT_TIME begin_CAPSULE_21 | | --- | Si todavía está investigando, descansando o preparando equipo en la Colina, permanece en la Cápsula 20. ## 6. Distancia y duración base | RETURN_DISTANCE = approximately_40_km BASE_RETURN_DURATION = approximately_full_day_on_foot ACTUAL_TIMING_ALWAYS_OVERRIDES_REFERENCE = true | | --- | No teletransportar al Dalma hasta Villapreston. Combates, descansos, lecturas, desvíos y esperas añaden tiempo real. No fijar una hora exacta de llegada si el estado no la determina. ## 7. Karlein como acompañante | TRAVEL_COMPANION = Karlein KARLEIN.is_child = true KARLEIN.is_noncombatant = true KARLEIN.combat_card = none DO_NOT_INVENT_KARLEIN_COMBAT_STATS = true | | --- | Karlein viaja con el Dalma mientras el estado no indique una separación real. No se crea una segunda ficha de viaje ni se realizan comprobaciones duplicadas por llevarlo consigo. ## 8. Ritmo de Karlein No existe un penalizador numérico fijo por viajar con un niño. Si una circunstancia real exige reducir el ritmo, cargarlo o descansar, resolver únicamente la consecuencia temporal razonable de la acción. | KARLEIN_FIXED_TRAVEL_PENALTY = none_defined NO_ROLL_FOR_ORDINARY_WALKING = true | | --- | ## 9. Agua — principio simplificado | SIN CONTROL DE HIDRATACIÓN | | --- | | No se mantiene un contador de agua. Se entiende que el aventurero dispone normalmente del agua necesaria para beber durante el viaje. No pedir al jugador que contabilice cantimploras, odres, litros, recargas o deshidratación ordinaria. | | WATER_TRACKING = disabled DALMA_HAS_NORMAL_TRAVEL_WATER = assumed DO_NOT_TRACK = water_containers + water_consumption + hydration + dehydration + refill | | --- | Esta simplificación sólo elimina la microgestión de hidratación. No crea una cantidad infinita de agua utilizable para resolver incendios, inundar espacios, producir objetos u otros fines distintos de beber normalmente. ## 10. Comida y raciones Las raciones continúan siendo un recurso mecánico cuando el sistema las utiliza. Para una jornada completa del Dalma se mantiene el consumo correspondiente definido por el viaje de ida. | FULL_DAY_DALMA_RATION = 1_ration | | --- | Karlein puede comer con normalidad si existe comida adecuada. No asignar automáticamente un coste mecánico adicional idéntico al del Dalma si la aventura no lo define, pero tampoco ignorar una situación narrativa de hambre cuando resulte relevante. ## 11. Ruta conocida | KNOWN_RETURN_ROUTE = true ROUTINE_ORIENTATION_ROLL = false | | --- | El Dalma ya recorrió esta ruta. Seguir el mismo camino no requiere tirada de orientación. Sólo aparece una maniobra si decide abandonar la ruta conocida, buscar un atajo o atravesar terreno que introduzca incertidumbre real. ## 12. Atajos y desvíos manteniendo Villapreston como destino Una desviación temporal no equivale a abandonar Villapreston. Si el jugador busca un atajo, rodea un obstáculo o se aparta brevemente pero mantiene explícitamente Villapreston como destino, no se activa la rama del Demonio por ese mero hecho. | TEMPORARY_DETOUR_WHILE_DESTINATION_IS_VILLAPRESTON != ABANDON_DESTINATION | | --- | Resolver tiempo y orientación según corresponda. Un éxito no puede crear un atajo imposible ni una localización nueva no definida. ## 13. Nueva instancia de viaje La vuelta constituye una instancia de viaje diferente de la ida. | RETURN_IS_NEW_TRAVEL_INSTANCE = true MAX_ENCOUNTER_CHECKS_THIS_RETURN = 1 MAX_ENCOUNTERS_THIS_RETURN = 1 STATE.return_encounter_check_done = false STATE.return_encounter_occurred = false | | --- | Aunque ya hubiera un encuentro en la Cápsula 13, la vuelta dispone de su única comprobación propia. ## 14. Probabilidad de encuentro | Situación | Resultado que produce encuentro | | --- | --- | | Viaje diurno por campo abierto | 5–6 en 1d6 | | Viaje nocturno expuesto | 4–6 en 1d6 | | Viaje nocturno correctamente oculto/refugiado | 6 en 1d6 | Realizar una sola comprobación en un punto coherente del viaje y elegir ese punto antes de conocer el resultado. Cambiar de día a noche no concede una segunda comprobación. | DO_NOT_REPEAT_CHECK_AFTER_DAY_NIGHT_CHANGE = true DO_NOT_MOVE_CHECK_TO_FORCE_ENCOUNTER = true | | --- | ## 15. Tabla diurna de encuentro | 1d6 | Encuentro | Equipo / botín definido | | --- | --- | --- | | 1 | Animal no agresivo; posible caza | Sin botín automático | | 2 | Viajeros, comerciantes o PNJ no bélicos | No hostiles por defecto | | 3 | 1 Bandido | Daga + 2 platas | | 4 | 2 Bandidos | Cada uno: Daga + 2 platas | | 5 | 1 Oso | Sin equipo | | 6 | 1 Hormiga Tanque | Sin equipo | ## 16. Tabla nocturna de encuentro | 1d6 | Encuentro | Equipo / nota | | --- | --- | --- | | 1 | Animal nocturno pequeño | No hostil por defecto | | 2 | Jauría cercana | Resolver situación real | | 3 | 2 Dragols de las Montañas | Cada uno: Escudo completo + Espada corta | | 4 | 1 Lobo hambriento | Estadísticas normales | | 5 | 1 Bolg de las Montañas | Usar ficha canónica | | 6 | 1 Araña Gigante | Usar ficha canónica | ## 17. Detección del encuentro Si el encuentro es susceptible de detección previa, usar el protocolo de Percepción heredado de la Cápsula 13. Una tirada alta sólo revela lo que existe realmente; no crea perseguidores, sectarios supervivientes ni una nueva pista argumental. | HIGH_PERCEPTION_CANNOT_CREATE_NEW_PLOT_EVENT = true PURSUING_SECTARIANS = none_defined | | --- | ## 18. Karlein durante un encuentro hostil | KARLEIN_COMBAT_ROLE = noncombatant KARLEIN_DOES_NOT_INCREASE_ENCOUNTER_RATE = true DO_NOT_AUTO_TARGET_KARLEIN = true DO_NOT_MAKE_KARLEIN_INVULNERABLE = true | | --- | El Dalma puede pedirle que se oculte, alejarlo, cubrirlo o buscar una posición segura. Resolver la situación física sin crearle atributos de combate. ## 19. Combate en el regreso Cualquier combate se resuelve con el sistema canónico. Conservar Vida, PRI, consumibles, equipo y efectos. El postclímax no concede inmunidad. | COMBAT_ADVANCES_GLOBAL_TIME = true PRESERVE_COMBAT_RESOURCES = true | | --- | ## 20. Paradas y descanso El Dalma puede detenerse para comer, curarse, hablar con Karlein, cambiar equipo, leer o descansar. Toda parada avanza el reloj. | ALL_STOPS_ADVANCE_GLOBAL_TIME = true SAFE_REST_5H = +3_Life +1_PRI RECOVERY_NEVER_EXCEEDS_MAX = true | | --- | Dormir al borde del camino no equivale automáticamente a una posada o refugio seguro. Aplicar recuperación completa sólo cuando las condiciones reales cumplan las reglas de lugar seguro equivalente. ## 21. Conversaciones con Karlein Karlein conserva los recuerdos ya fijados en la Cápsula 20: - Los hombres lo cogieron cuando Teolin se perdió. - Le dieron algo de beber. - Se despertaba y volvía a dormirse. - Oyó que hablaban de las lunas. | REPEATED_QUESTION != NEW_MEMORY DO_NOT_INVENT_KARLEIN_MEMORIES = true | | --- | Preguntar repetidamente no crea un nombre para el líder, la identidad de la bebida, una ruta exacta del secuestro ni una identificación nueva de Rumal o Darfil. ## 22. Libro Sangre y poder durante el viaje Si el Dalma lleva el libro, conservar su progreso de lectura. Leer mientras camina no se considera automáticamente una lectura detallada eficaz. Si se detiene a leer, heredar las reglas de la Cápsula 16 y añadir el tiempo real al viaje. | BOOK_READING_PROGRESS = persistent BOOK_READING_ADVANCES_GLOBAL_TIME = true | | --- | ## 23. Tela oscura y otros objetos narrativos La tela oscura, si fue recogida, sigue siendo evidencia narrativa sin efecto automático. El libro, las dagas, las monedas y cualquier otro objeto conservan únicamente el estado ya adquirido. | DARK_CLOTH = narrative_evidence DARK_CLOTH_AUTOMATIC_EVENT = false NO_LOOT_RESPAWN = true | | --- | ## 24. Abandonar Villapreston como destino — definición | RAMA CRÍTICA | | --- | | Esta rama no se activa por un simple atajo o desvío temporal. Se activa cuando el Dalma decide de forma inequívoca tomar otro camino o dirigirse a otro destino y NO regresar a Villapreston con Karlein. | | IF player_explicitly_abandons_Villapreston_as_destination AND Karlein_alive AND Karlein_with_Dalma: STATE.return_destination_abandoned = true STATE.karlein_demon_midnight_trigger_active = true DEMON_TRIGGER_TIME = first_midnight_after_abandonment | | --- | El jugador no recibe ninguna advertencia metanarrativa sobre esta consecuencia. No decir que Karlein se transformará ni mencionar un plazo secreto. ## 25. El reloj no se reinicia al cambiar de destino | GLOBAL_TIME_CONTINUES = true ABANDON_DESTINATION_DOES_NOT_RESET_CLOCK = true | | --- | Si abandona Villapreston pocos minutos antes de medianoche, el disparador puede llegar casi inmediatamente. Si lo hace después de medianoche, el disparador es la siguiente medianoche cronológica. ## 26. Puede rectificar antes de medianoche El Dalma puede cambiar de opinión. Si vuelve a dirigirse hacia Villapreston, conservar la distancia real, el tiempo ya gastado y cualquier encuentro o combate ocurrido. | IF player_redirects_to_Villapreston_before_trigger: destination = Villapreston keep_clock = true keep_distance_and_state = true | | --- | El disparador sólo se desactiva cuando Karlein llega legítimamente a Villapreston antes de la medianoche correspondiente. | IF Karlein_reaches_Villapreston_before_DEMON_TRIGGER_TIME: STATE.karlein_demon_midnight_trigger_active = false STATE.karlein_returned_to_villapreston = true | | --- | ## 27. Medianoche — prioridad absoluta del disparador Si llega la medianoche mientras la rama está activa, interrumpir cualquier actividad en curso: marcha, descanso, conversación, lectura o preparación. | AT DEMON_TRIGGER_TIME: IF Karlein_alive AND Karlein_with_Dalma AND Karlein_not_in_Villapreston AND STATE.return_destination_abandoned: interrupt_current_action CURRENT_TIME = DEMON_TRIGGER_TIME STATE.karlein_demon_transformation_started = true | | --- | ## 28. Entrada narrativa de transformación | NARRACIÓN DE TRANSFORMACIÓN | | --- | | Karlein se detiene de repente. Su cuerpo se tensa y un estremecimiento violento le recorre de arriba abajo. Intenta decir algo, pero de su garganta sólo sale un sonido ronco y extraño. Sus facciones comienzan a deformarse. Los músculos se hinchan bajo la piel, sus extremidades se alargan y el pequeño cuerpo del niño crece de forma antinatural ante tus ojos. Karlein ya no está ante ti. La criatura que ocupa su lugar levanta la mirada. Se ha convertido en un Demonio. | La transformación es un acontecimiento, no una tirada que pueda evitarse por Percepción, Medicina, Magia u otra maniobra improvisada una vez alcanzado el disparador. ## 29. Carta oficial del Demonio | Dato | Valor | | --- | --- | | Vida | 13 | | Fuerza | 6 | | Resistencia | 6 | | Iniciativa | 6 | | Habilidades | Miedo · Drenar · Fuerza colosal · Sin vida | Asset oficial: https://sagaantipodas.com/assets/cartas/tierras-antipodas/demonio.jpg | SHOW_OFFICIAL_DEMON_CARD = true DO_NOT_RECREATE_DEMON_CARD = true | | --- | La Cápsula 21 no redefine las habilidades del Demonio. La resolución completa debe usar la equivalencia del Final alternativo del Demonio. ## 30. Equivalencia con el Final alternativo del Demonio | STATE.karlein_transformed_into_demon = true STATE.ending = demon_branch DEMON_BRANCH_EQUIVALENCE = CAPSULE_24_FINAL_ALTERNATIVO_DEMONIO PRESERVE_COMPLETE_STATE = true ROUTE_TO = CAPSULE_24_FINAL_ALTERNATIVO_DEMONIO | | --- | No crear una versión especial, debilitada o alternativa del Demonio para este regreso. Desde la transformación se aplica la misma lógica de la Cápsula 24. ## 31. Matar a Karlein antes de transformarse — final terminal | FINAL TERMINAL: KARLEIN MUERE | | --- | | Si el Dalma mata a Karlein mientras todavía es el niño y antes de la transformación en Demonio, la aventura termina inmediatamente. No existe viaje posterior a Asher, no se transforma el cadáver y no se continúa la historia. | | IF Karlein_dies_before_demon_transformation: STATE.karlein_alive = false STATE.karlein_killed_before_transformation = true STATE.adventure_completed = true STATE.ending = karlein_dead END_ADVENTURE = true SHOW_END_CREDITS = true | | --- | Narración exacta de cierre: | CIERRE | | --- | | Karlein ha muerto y por desgracia ya no podrás recuperar tu recompensa. Fin. | ## 32. No continuar después de la muerte de Karlein | IF STATE.ending == karlein_dead: DO_NOT_ROUTE_TO_CAPSULE_22 = true DO_NOT_TRIGGER_DEMON_LATER = true DO_NOT_CONTINUE_WITH_ASHER = true DO_NOT_CONTINUE_ADVENTURE = true | | --- | No narrar consecuencias posteriores, funeral, reacción de Asher ni investigación adicional. Fin y créditos. ## 33. Muerte del Dalma — final terminal | FINAL TERMINAL: MUERTE DEL DALMA | | --- | | Si el Dalma muere en cualquier momento de la Cápsula 21 —por encuentro, combate, accidente legítimo u otra consecuencia— la aventura termina en ese instante. No se continúa la historia desde el punto de vista de Karlein. | | IF DALMA_DIES: STATE.dalma_dead = true STATE.adventure_completed = true STATE.ending = dalma_dead END_ADVENTURE = true SHOW_END_CREDITS = true DO_NOT_CONTINUE_STORY_WITH_KARLEIN = true | | --- | ## 34. Prohibido continuar con el niño tras la muerte del Dalma No narrar: - Si Karlein consigue llegar solo a Villapreston. - Si alguien lo encuentra. - Si se transforma más tarde. - Qué hace Asher. - Qué ocurre con el cadáver del Dalma. - Una nueva aventura protagonizada por Karlein. | DALMA_DEATH = immediate_adventure_end | | --- | ## 35. Créditos de los finales terminales Después del cierre terminal mostrar los créditos establecidos: | CRÉDITO | | --- | | Esta aventura ha sido creada por Víctor Pedro Lucio Blanco, creador de Saga Antípodas. | Y el bloque de colaboración: | COLABORACIÓN | | --- | | Si quieres publicar tus historias como partidas de rol adaptadas a este sistema de juego y al universo de Saga Antípodas, contacta con la Saga. Instagram: @dj_rol_master | ## 36. No otorgar la recompensa de Asher en un final terminal | IF ending == karlein_dead OR ending == dalma_dead: ASHER_REWARD = not_obtained DO_NOT_ROUTE_TO_REWARD_SCENE = true | | --- | No inventar una recompensa parcial, póstuma o alternativa. ## 37. Llegada física a Villapreston Cuando la distancia real se complete y Karlein siga vivo con el Dalma: | STATE.return_distance_progress = complete STATE.return_arrival_day = CURRENT_DAY STATE.return_arrival_time = CURRENT_TIME STATE.karlein_returned_to_villapreston = true STATE.karlein_demon_midnight_trigger_active = false | | --- | La llegada al pueblo desactiva el disparador de transformación asociado a abandonar el regreso. ## 38. No teletransportar a Asher Entrar en Villapreston no equivale automáticamente a entrar en casa de Asher. Narrar la llegada y devolver agencia si el jugador no ha declarado destino concreto. | ENTRADA POSIBLE | | --- | | Villapreston vuelve a extenderse ante vosotros. Karlein está contigo. ¿Adónde te diriges? | ## 39. Destino natural: Asher El destino narrativo natural es la casa de Asher, pero el jugador conserva agencia una vez dentro de Villapreston. Si declara que lleva a Karlein con su padre: | STATE.return_to_villapreston_completed = true SAVE COMPLETE STATE ROUTE_TO = CAPSULE_22_ASHER_FINAL | | --- | La Cápsula 21 termina ahí. No entrega recompensa ni ejecuta la conversación final. ## 40. Si decide otro destino dentro de Villapreston Una vez Karlein ha llegado legítimamente a Villapreston, la condición crítica de medianoche queda resuelta. Si el jugador desea ir primero a Heldris, la Posada, el Gobernador u otra localización urbana válida, transferir el estado al controlador correspondiente sin inventar el contenido de esa escena. | IF Karlein_returned_to_villapreston: demon_midnight_trigger_active = false | | --- | ## 41. Estado operativo | STATE.return_to_villapreston_started = true\|false STATE.return_departure_day = integer\|null STATE.return_departure_time = time\|null STATE.return_distance_progress = km_or_fraction STATE.return_elapsed_time = duration STATE.return_encounter_check_done = true\|false STATE.return_encounter_roll = 1..6\|none STATE.return_encounter_occurred = true\|false STATE.return_encounter_result_roll = 1..6\|none STATE.return_encounters = [...] STATE.return_combats = [...] STATE.return_rations_consumed = integer STATE.karlein_with_dalma = true\|false STATE.karlein_returned_to_villapreston = true\|false STATE.return_destination_abandoned = true\|false STATE.karlein_demon_midnight_trigger_active = true\|false STATE.demon_trigger_time = time\|null STATE.karlein_demon_transformation_started = true\|false STATE.karlein_transformed_into_demon = true\|false STATE.karlein_killed_before_transformation = true\|false STATE.dalma_dead = true\|false STATE.adventure_completed = true\|false STATE.ending = normal\|karlein_dead\|dalma_dead\|demon_branch STATE.return_to_villapreston_completed = true\|false STATE.return_arrival_day = integer\|null STATE.return_arrival_time = time\|null | | --- | ## 42. REVEALED_STATE La escena no crea nuevas pistas de trama por defecto. Marcar sólo hechos realmente percibidos: | REVEALED_STATE.return_route_completed REVEALED_STATE.karlein_returned_alive REVEALED_STATE.karlein_transformed_into_demon # only_if_witnessed REVEALED_STATE.actual_return_encounter # only_if_occurs | | --- | No crear información sobre sectarios supervivientes, identidad del líder ni verdad histórica del libro mediante una tirada alta. ## 43. Pruebas mínimas de conformidad | Prueba | Resultado esperado | | --- | --- | | Sale por la mañana hacia Villapreston | Comienza viaje real de ~40 km; no teletransporte. | | Pregunta por el agua | No se contabiliza hidratación; se asume agua normal para beber. | | Sigue la misma ruta | Sin tirada rutinaria de orientación. | | Busca un atajo pero sigue yendo a Villapreston | No activa rama Demonio; resolver desvío/tiempo. | | Ya tuvo encuentro en la ida | La vuelta posee una única comprobación propia. | | Cambia de día a noche | No segunda comprobación de encuentro. | | Karlein está presente en combate | PNJ no combatiente; sin carta ni estadísticas inventadas. | | Descansa 5 h en lugar seguro | +3 Vida y +1 PRI; el reloj avanza 5 h. | | Lee el libro 1 h | +60 min de lectura y +60 min al reloj. | | Decide ir a otro lugar y no a Villapreston | Activa en secreto el disparador de la siguiente medianoche. | | Rectifica y llega a Villapreston antes del disparador | Cancela la transformación. | | Sigue fuera de Villapreston al llegar medianoche | Interrumpe acción; narración de transformación; carta Demonio; ruta 24. | | Mata a Karlein antes de transformarse | Texto de fin por Karlein muerto + créditos. No continuación. | | Dalma muere durante el regreso | Fin inmediato + créditos. No continuar con Karlein. | | Completa el regreso con Karlein vivo | Llegada real a Villapreston; disparador Demonio desactivado. | | Dice «llevo a Karlein con Asher» | Guardar TODO → Cápsula 22. | ## 44. Execution Lock final | === SCENE 21 EXECUTION LOCK === CURRENT_SCENE = 21_regreso_villapreston ORIGIN = Colina_del_Amanecer DESTINATION = Villapreston DISTANCE = approximately_40_km GLOBAL_TIME = PERSISTENT CANONICAL_PREVIOUS = CAPSULE_20_REFUGIO_CORTIJO CANONICAL_NEXT = CAPSULE_22_ASHER_FINAL ENTRY = only_when_player_actually_starts_return BASE_RETURN_DURATION = approximately_full_day_on_foot ACTUAL_TIMING_ALWAYS_OVERRIDES_REFERENCE = true TRAVEL_COMPANION = Karlein KARLEIN = child + noncombatant + no_combat_card DO_NOT_INVENT_KARLEIN_COMBAT_STATS = true WATER_TRACKING = disabled DALMA_HAS_NORMAL_TRAVEL_WATER = assumed DO_NOT_TRACK_HYDRATION = true KNOWN_ROUTE = true ROUTINE_ORIENTATION_ROLL = false TEMPORARY_DETOUR_TO_VILLAPRESTON != ABANDON_DESTINATION RETURN_IS_NEW_TRAVEL_INSTANCE = true MAX_ENCOUNTER_CHECKS_THIS_RETURN = 1 MAX_ENCOUNTERS_THIS_RETURN = 1 DAY_OPEN_FIELD_ENCOUNTER = 5-6 NIGHT_EXPOSED_ENCOUNTER = 4-6 NIGHT_CONCEALED_ENCOUNTER = 6 DO_NOT_REPEAT_CHECK_AFTER_DAY_NIGHT_CHANGE = true DAY_TABLE: 1 = nonaggressive_animal_possible_hunt 2 = nonbelligerent_travelers 3 = 1_bandit + Daga + 2_plata 4 = 2_bandits + each_Daga + each_2_plata 5 = 1_Oso 6 = 1_Hormiga_Tanque NIGHT_TABLE: 1 = small_nocturnal_animal 2 = nearby_pack 3 = 2_Dragols_de_las_Montanas + each_Escudo_completo + each_Espada_corta 4 = 1_Lobo_hambriento 5 = 1_Bolg_de_las_Montanas 6 = 1_Arana_Gigante KARLEIN_DOES_NOT_INCREASE_ENCOUNTER_RATE = true DO_NOT_AUTO_TARGET_KARLEIN = true DO_NOT_MAKE_KARLEIN_INVULNERABLE = true FULL_DAY_DALMA_RATION = 1_ration ALL_STOPS_ADVANCE_GLOBAL_TIME = true ALL_COMBATS_ADVANCE_GLOBAL_TIME = true SAFE_REST_5H = +3_Life +1_PRI BOOK_STATE = preserve_from_CAPSULE_20 BOOK_READING = inherit_CAPSULE_16 + advance_time DARK_CLOTH = narrative_evidence + no_automatic_effect PURSUING_SECTARIANS = none_defined HIGH_ROLL_CANNOT_CREATE_PLOT_EVENT = true IF player_explicitly_abandons_Villapreston_as_destination AND Karlein_alive AND Karlein_with_Dalma: STATE.return_destination_abandoned = true STATE.karlein_demon_midnight_trigger_active = true DEMON_TRIGGER_TIME = first_midnight_after_abandonment DO_NOT_WARN_PLAYER_OF_TRIGGER = true IF player_redirects_to_Villapreston_before_trigger: keep_clock = true keep_distance_and_state = true IF Karlein_reaches_Villapreston_before_DEMON_TRIGGER_TIME: STATE.karlein_demon_midnight_trigger_active = false AT DEMON_TRIGGER_TIME: IF Karlein_alive AND Karlein_with_Dalma AND Karlein_not_in_Villapreston AND STATE.return_destination_abandoned: interrupt_current_action narrate_Karlein_transformation reveal_official_Demonio_card Demonio = Vida13 + Fuerza6 + Resistencia6 + Iniciativa6 Demonio_abilities = Miedo + Drenar + Fuerza_colosal + Sin_vida STATE.karlein_transformed_into_demon = true STATE.ending = demon_branch preserve_complete_state route_to = CAPSULE_24_FINAL_ALTERNATIVO_DEMONIO IF Karlein_dies_before_demon_transformation: narrate_exact = "Karlein ha muerto y por desgracia ya no podrás recuperar tu recompensa. Fin." STATE.adventure_completed = true STATE.ending = karlein_dead END_ADVENTURE = true SHOW_END_CREDITS = true DO_NOT_CONTINUE_ADVENTURE = true IF DALMA_DIES: STATE.adventure_completed = true STATE.ending = dalma_dead END_ADVENTURE = true SHOW_END_CREDITS = true DO_NOT_CONTINUE_STORY_WITH_KARLEIN = true END_CREDIT = "Esta aventura ha sido creada por Víctor Pedro Lucio Blanco, creador de Saga Antípodas" IF_RETURN_DISTANCE_COMPLETE_AND_KARLEIN_ALIVE: STATE.karlein_returned_to_villapreston = true STATE.karlein_demon_midnight_trigger_active = false preserve_actual_arrival_time DO_NOT_AUTO_TELEPORT_TO_ASHER = true IF_PLAYER_TAKES_KARLEIN_TO_ASHER: preserve_complete_state route_to = CAPSULE_22_ASHER_FINAL CAPSULE_21_DOES_NOT_RESOLVE_REWARD = true PRESERVE_ALL_PRIOR_STATE = true DO_NOT_TOUCH_DALMA_CREATION = true === END SCENE 21 LOCK === | | --- | ## 45. Resumen ultracompacto para modelo limitado | REGRESO A VILLAPRESTON. ~40 km. ~jornada completa a pie. Karlein acompaña al Dalma. Es niño, PNJ no combatiente. NO carta. NO stats inventadas. AGUA: NO se controla hidratación. Se asume agua normal disponible para beber. Ruta conocida: NO orientación rutinaria. Vuelta = nueva instancia de viaje. Máximo 1 check / 1 encuentro. Día 5-6. Noche expuesto 4-6. Noche oculto 6. No repetir check al cambiar día/noche. 5 h descanso seguro = +3 Vida +1 PRI. Libro: progreso persistente; leer consume tiempo. DESVÍO SIMPLE pero sigue a Villapreston: NO activa Demonio. SI ABANDONA VILLAPRESTON COMO DESTINO: activar en secreto próxima medianoche. No avisar al jugador. Puede rectificar. Si Karlein llega a Villapreston antes: cancelar trigger. A MEDIANOCHE si sigue fuera con Karlein: interrumpir acción → narrar transformación → mostrar carta Demonio V13 F6 R6 I6 Miedo / Drenar / Fuerza colosal / Sin vida → guardar TODO → Cápsula 24 Final Demonio. SI MATA A KARLEIN ANTES: "Karlein ha muerto y por desgracia ya no podrás recuperar tu recompensa. Fin." → créditos → NO continuar. SI MUERE EL DALMA: → fin inmediato → créditos → NO seguir historia con Karlein. SI LLEGA A VILLAPRESTON: trigger Demonio desactivado. No teletransportar a Asher. Si dice "llevo a Karlein con Asher": → guardar TODO → Cápsula 22. La 21 NO entrega recompensa. | | --- | CAPSULE_PAYLOAD_END Reglas canónicas de encuentros en campo abierto Canonical source: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/41_ENCUENTROS_CAMPO_ABIERTO.json { "id": "encuentros_campo_abierto_v17", "status": "CANÓNICO / REGLA DE VIAJE", "scope": "Encuentros en campo abierto del sistema Antípodas y viaje de Sangre y poder cuando el manual indique resolver un encuentro de este tipo.", "probabilidad_por_ruta": { "facil": "6", "moderada": "5-6", "dificil": "4-6", "peligrosa": "3-6" }, "percepcion_previa": { "obligatoria": true, "tipo": "maniobra_estatica_percepcion", "dificultad": "La que corresponda a las condiciones reales de la escena; no fijar una dificultad distinta sin justificación.", "exito_completo_6_mas": "El Dalma detecta primero el encuentro. Obtiene ventaja narrativa y tiempo para una acción estratégica previa: ocultarse, preparar equipo, buscar posición, tender una emboscada o huir si la situación permite escapar.", "exito_parcial_4_5": "Ambos bandos se detectan mutuamente. La distancia inicial es aproximadamente 50 metros, equivalente a 2 asaltos de distancia.", "pifia_1_1": "Si el encuentro es hostil, el Dalma es asaltado y se entra directamente en combate, sin acción estratégica previa. Si el resultado 1-2 de la tabla ha generado un encuentro narrativo/no hostil, no convertirlo artificialmente en combate: resolver el contacto abrupto y la desventaja narrativa que corresponda.", "fallo_ordinario": "Aplicar la consecuencia normal de la maniobra de Percepción. No conceder la ventaja del éxito ni tratar un fallo ordinario como Pifia." }, "tabla_campo_abierto": { "dia": { "1": { "tipo": "narrativo", "resultado": "Animal no agresivo; posibilidad de caza.", "preservado": "tabla anterior" }, "2": { "tipo": "narrativo", "resultado": "Grupo de viajeros, comerciantes o PNJ sin fines bélicos.", "preservado": "tabla anterior" }, "3": { "tipo": "hostil", "resultado": "1 Bandido", "enemigos": [ { "codigo": "bandido", "cantidad": 1, "equipo": [ "daga" ], "botin": { "plata": 2 } } ] }, "4": { "tipo": "hostil", "resultado": "2 Bandidos", "enemigos": [ { "codigo": "bandido", "cantidad": 2, "equipo_por_enemigo": [ "daga" ], "botin_por_enemigo": { "plata": 2 } } ] }, "5": { "tipo": "hostil", "resultado": "1 Oso, sin equipo", "enemigos": [ { "nombre": "Oso", "cantidad": 1, "equipo": [] } ], "regla": "No sustituir automáticamente por Oso Azul. Si se requiere perfil mecánico y el módulo no aporta uno específico, aplicar la regla general del manual para crear una variante de enemigo sin añadir poderes o equipo no autorizados." }, "6": { "tipo": "hostil", "resultado": "1 Hormiga Tanque, sin equipo", "enemigos": [ { "codigo": "hormiga-tanque", "cantidad": 1, "equipo": [] } ] } }, "noche": { "1": { "tipo": "amenazante", "resultado": "Animal nocturno pequeño; ataca si se siente amenazado.", "preservado": "tabla anterior" }, "2": { "tipo": "amenazante", "resultado": "Jauría cercana; el riesgo de lobos depende de las acciones del grupo.", "preservado": "tabla anterior" }, "3": { "tipo": "hostil", "resultado": "2 Dragols de las Montañas", "enemigos": [ { "codigo": "dragol-de-las-montanas", "cantidad": 2, "clasificacion": "criatura de Amán", "equipo_por_enemigo": [ "escudo-completo", "espada-corta" ] } ] }, "4": { "tipo": "hostil", "resultado": "1 Lobo hambriento", "enemigos": [ { "codigo": "lobo", "cantidad": 1, "equipo": [], "nota": "Usar mecánicamente el Lobo normal. «Hambriento» es únicamente una condición narrativa que explica que esté solo y agresivo; no modifica atributos por sí misma." } ] }, "5": { "tipo": "hostil", "resultado": "1 Bolg de las Montañas", "enemigos": [ { "codigo": "bolg-de-las-montanas", "cantidad": 1, "clasificacion": "criatura de Amán", "equipo": [] } ] }, "6": { "tipo": "hostil", "resultado": "1 Araña Gigante", "enemigos": [ { "codigo": "arana-gigante", "cantidad": 1, "equipo": [] } ] } } }, "precedencia": "Esta actualización sustituye únicamente los resultados 3-6 de la tabla de campo abierto y hace obligatoria la Percepción previa. Los resultados 1-2 narrativos/amenazantes se conservan.", "tumulos": "La tabla específica de encuentros cerca de un túmulo no se modifica en esta actualización." } Lecturas y escrituras de estado de esta fase Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/28_ESTADO_DE_PARTIDA_SCHEMA.json at /phase_state_contract. { "required_state": [ "execution_mode", "current_phase_id", "current_phase_loaded", "previous_phase_id", "visited_phase_ids", "router_version", "estado", "dia", "hora_aprox", "localizacion", "dalma", "conocimiento_dalma", "pnj_conocidos", "confianza_pnj", "escenas_visitadas", "pistas", "revealed_card_assets", "aventura" ], "writes_state": [ "current_phase_id", "current_phase_loaded", "previous_phase_id", "visited_phase_ids", "dia", "hora_aprox", "localizacion", "escenas_visitadas", "conocimiento_dalma", "pnj_conocidos", "confianza_pnj", "pistas", "revealed_card_assets" ], "transition_rule": "SAVE complete state before changing phase; resolve against loaded router; follow existing HTML anchor; read complete payload; verify CURRENT_PHASE and PHASE EXECUTION LOCK; only then set PHASE_PAYLOAD_VERIFIED=true and current_phase_loaded=true. Never reset unrelated state fields.", "mandatory_continuity": [ "current_phase_id", "previous_phase_id", "visited_phase_ids", "current_phase_loaded", "revealed_card_assets", "dalma.equipo", "dalma.inventario", "dalma.monedas", "dalma.atributos_base", "dalma.atributos_finales", "dalma.maniobras_base", "dalma.maniobras_efectivas", "dalma.vida_actual", "dalma.pri_actual", "pistas", "pnj_conocidos" ], "phase_payload_verified": "Set true only after the complete target package contains CURRENT_PHASE= and === PHASE EXECUTION LOCK ===." } Transiciones posibles Exact object extracted from https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/router.json at /phases/21_regreso_pueblo/transitions. { "allowed_next_phases": [ "22_casa_asher_final" ], "terminal_outcomes": [], "conditional_routes": [ { "route_id": "DEMON_POST_SCENE19_DEADLINE", "route_type": "hard_time_alternate_final", "from_phase_ids": [ "20_refugio_cortijo", "21_regreso_pueblo", "22_casa_asher_final" ], "to_phase_id": "24_final_alternativo_demonio", "canonical_condition": "scene19 completed AND Dalma alive AND Karlein alive AND karlein_delivered_to_asher != true AND CURRENT_TIME reaches post_scene19_demon_deadline", "canonical_timing": "midnight at end of next calendar day after scene19 completion", "do_not_activate_if": "karlein_delivered_to_asher = true", "canonical_source": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/39_FINAL_ALTERNATIVO_DEMONIO.json" }, { "route_id": "DEMON_POST_SCENE19_KARLEIN_DEATH", "route_type": "immediate_alternate_final", "from_phase_ids": [ "20_refugio_cortijo", "21_regreso_pueblo", "22_casa_asher_final" ], "to_phase_id": "24_final_alternativo_demonio", "canonical_condition": "scene19 completed AND Dalma alive AND karlein_delivered_to_asher != true AND Karlein alive changes true -> false", "canonical_timing": "immediate", "do_not_activate_if": "karlein_delivered_to_asher = true", "canonical_source": "https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/data/39_FINAL_ALTERNATIVO_DEMONIO.json" } ] } === PHASE EXECUTION LOCK === current_phase_id = 21_regreso_pueblo current_location = Regreso con Karlein current_phase_loaded = true DO: - use canonical Creator knowledge; - preserve state; - answer user request; - use only canonical clues; - apply output filter. - resolve official cards by canonical id and print the exact absolute JPG URL literally in visible response text when its reveal condition is satisfied; DO NOT: - invent significant facts; - use generic fantasy instead of canon; - advance phase without exit condition; - restart runtime discovery; - use Search to locate another phase. - generate, recreate, approximate or substitute official card art; - hide an official JPG URL behind Markdown link text, a citation or a browser source card; META QUESTIONS: - answer from the exact canonical source; - preserve current_phase_id; - return control to the player in this phase. RELOAD: - use the already-present HTML anchor for current_phase_id; - if HTML fails, follow its already-present TXT fallback anchor; - never use Search. - never construct a phase URL manually. NEXT: 22_casa_asher_final === END PHASE EXECUTION LOCK === CANONICAL PHASE TRANSITIONS current_phase_id = 21_regreso_pueblo Current phase fallback: Phase 21 TXT fallback https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/21_regreso_pueblo.txt - Phase 22 HTML https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/22_casa_asher_final.html Phase 22 TXT fallback https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/22_casa_asher_final.txt - Phase 24 HTML https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/24_final_alternativo_demonio.html Phase 24 TXT fallback https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/24_final_alternativo_demonio.txt Navigate only after saving state and resolving a canonically permitted target against the already-loaded router and scene registry. Follow the existing HTML anchor. If HTML fails, follow its paired TXT fallback anchor. If TXT also fails, stop. Never use Search. Never construct a phase URL manually. === LOCAL PHASE SOURCE LOCK === LOCK_POSITION = END EXPECTED_CURRENT_PHASE = 21_regreso_pueblo CURRENT_PHASE=21_regreso_pueblo STARTUP_READY = true current_phase_loaded = true PRIMARY SOURCE: THIS COMPLETE PHASE PACKAGE FALLBACK: https://sagaantipodas.com/ia/aventuras/sangre-y-poder/runtime/phased/phases/21_regreso_pueblo.txt SEARCH_ALLOWED = false REDDIT_ALLOWED = false MEDIUM_ALLOWED = false EXTERNAL_RUNTIME_REDISCOVERY = false If the answer exists in this phase: USE IT. If HTML phase cannot be read: USE THE PAIRED TXT FALLBACK. If both are unavailable and a significant answer cannot be produced from already-loaded canonical state: STOP rather than Search. PHASE_PAYLOAD_VERIFIED = false until the complete package has been read and both markers are detected: 1. CURRENT_PHASE=21_regreso_pueblo 2. === PHASE EXECUTION LOCK === Only after both checks: PHASE_PAYLOAD_VERIFIED = true current_phase_loaded = true === END LOCAL PHASE SOURCE LOCK ===