!% -~D !% -~S !% +include_path=..\lib\base,..\lib\contrib,..\games\Macetas !Poner "% -~S" (sin las ") permite compilar para generar archivo Macetas.z5 (máquina Z versión 5) !Poner "!% -~D" al principio del archivo (sin las ") permite compilar en modo Release (No Debug) ! "Macetas" ! ! REALIZADO POR: Sebastián Armas ! ! Copyright (C) 2007 ! CONSTANTES Constant Historia "~Macetas~^ Un Relato de Ci-Fi ~Duro~."; Constant Titular "^Realizado por: Sebastián Armas (Incanus)^ (C) Año 2007^"; Serial "010102"; Release 1; ! Versión 01.01.02 ! Localidades y decorados ! Puzzles con Objetos ! Ayuda ! Pistas ! Agradecimientos ! Curiosidades y Otros (Curiosidades e Historia de Goteras) ! Cortometrajes ! ! Implementacion de Observacionesde FICOMP ! ! TEMAS GENERALES ! - Se habilita comando salidas ! - Se crea una salida adicional y aleatoria como respuesta al 50% de usos de la tarjeta ! en ranuras. ! - Se corrigen descripciones de localidades sin salidas explícitas: ! Recepción: Muelle y Control de Ingreso ! Servicios: Pasillo Servicios Sur/Norte/Oeste/Este, Hall de Servicios, Comedor, Dispensario, ! Gimnasio y Sala de Medios ! Dormitorios: Dormitorio ! Administración: Acceso, Oficina Personal, Oficina Sindicato, Oficina Ejecutivo ! Mina: Galerías de Extracción ! ! PUZZLES ! - Se modifica el segundo mensaje al hablar con el Guardia de Control de Ingreso, llevando ! puesto el Traje EVA ! - Se agrega Mostrar como equivalente a Dar para la Tarjeta del Jugador y se modifica la ! reacción del Guardia de Control de Ingreso, según se tiene o no puesto el Traje EVA ! - Se agrega Tocar como equivalente a Leer en Terminal ! - Se agrega detalle de procedimientos de seguridad en mina una vez cargados, tanto al leer ! el Terminal como al usar RV ! - Se elimina 'dormir' como adjetivo de la Ropa de Dormitorio; conflictos con comando Dormir ! - En el Ascensor Detenido, se agregan mensajes de sugerencia de puzzle a botones y ranura ! Queremos usar el comando 'Salidas' Constant ADMITIR_COMANDO_SALIDAS; ! Constant DEBUG; ! No queremos usar los comandos 'Lugares' y 'Objetos' Constant NO_LUGARES; ! No queremos usar puntuación Constant NO_PUNTUACION; ! Tenemos Curiosidades Constant HAY_CURIOSIDADES; ! Definiciones para curiosidades [curiosidades; ZIPI_RunMenuT(ZIPI_Menu25); ]; !-------------- Include -------------- Include "zipi.inf"; ! Módulo para Menues Include "EParser"; ! Módulo para InformATE! Include "Acciones"; ! Módulo para InformATE! Include "Gramatica"; ! Módulo para InformATE! Include "Puertas"; ! Módulo para Puertas Include "Cortos"; ! Módulo para texto animado Include "Decorado"; ! Módulo para descripcion de decorados !------------ End Include ------------ Attribute legible; ! Definiciones para lectura ! Menu de Terminal ZIPI_Menu ZIPI_Menu0 with ZIPI_titulo "Menú de Terminal", ZIPI_item ZIPI_Menu1 ZIPI_Menu2 ; ZIPI_Menu ZIPI_Menu1 with ZIPI_titulo "Información Administrativa", ZIPI_item ZIPI_Otro0 ZIPI_Otro1 ; ZIPI_Menu ZIPI_Menu2 with ZIPI_titulo "Datos Almacenados", ZIPI_item ZIPI_Menu3 ZIPI_Otro7 ZIPI_Otro8 ; ZIPI_Menu ZIPI_Menu3 with ZIPI_titulo "Programas de Entretenimiento", ZIPI_item ZIPI_Otro2 ZIPI_Otro3 ZIPI_Otro4 ZIPI_Otro5 ZIPI_Otro6 ; ZIPI_Menu ZIPI_Menu4 with ZIPI_titulo "Menú de la Aventura", ZIPI_item ZIPI_Menu5 ZIPI_Menu24 ZIPI_Otro17 ! ZIPI_Menu25 ; ZIPI_Menu ZIPI_Menu5 with ZIPI_titulo "Ayuda de la Aventura", ZIPI_item ZIPI_Menu6 ZIPI_Menu7 ; ZIPI_Menu ZIPI_Menu6 with ZIPI_titulo "Instrucciones", ZIPI_item ZIPI_Otro9 ZIPI_Otro10 ; ZIPI_Menu ZIPI_Menu7 with ZIPI_titulo "Pistas", ZIPI_item ZIPI_Menu8 ZIPI_Menu9 ZIPI_Menu13 ZIPI_Menu19 ; ZIPI_Menu ZIPI_Menu8 with ZIPI_titulo "Aspectos Operacionales", ZIPI_item ZIPI_Pista0 ZIPI_Pista1 ZIPI_Pista2 ZIPI_Pista3 ; ZIPI_Menu ZIPI_Menu9 with ZIPI_titulo "Acto I: Arribo", ZIPI_item ZIPI_Menu10 ZIPI_Menu11 ZIPI_Menu12 ; ZIPI_Menu ZIPI_Menu10 with ZIPI_titulo "Acceso a la Base", ZIPI_item ZIPI_Pista4 ZIPI_Pista5 ZIPI_Pista6 ZIPI_Pista7 ZIPI_Pista8 ; ZIPI_Menu ZIPI_Menu11 with ZIPI_titulo "Nivel de Servicios", ZIPI_item ZIPI_Pista9 ZIPI_Pista10 ZIPI_Pista11 ; ZIPI_Menu ZIPI_Menu12 with ZIPI_titulo "Nivel de Administración", ZIPI_item ZIPI_Pista12 ZIPI_Pista13 ZIPI_Pista14 ZIPI_Pista15 ; ZIPI_Menu ZIPI_Menu13 with ZIPI_titulo "Acto II: Aprovisionamiento ", ZIPI_item ZIPI_Menu14 ZIPI_Menu15 ZIPI_Menu16 ZIPI_Menu17 ZIPI_Menu18 ; ZIPI_Menu ZIPI_Menu14 with ZIPI_titulo "¿Cómo me preparo para bajar a la mina?", ZIPI_item ZIPI_Pista16 ZIPI_Pista17 ; ZIPI_Menu ZIPI_Menu15 with ZIPI_titulo "¿Cómo me equipo para bajar a la mina?", ZIPI_item ZIPI_Pista18 ZIPI_Pista19 ; ZIPI_Menu ZIPI_Menu16 with ZIPI_titulo "¿Como puedo conseguir bajar a la mina?", ZIPI_item ZIPI_Pista20 ZIPI_Pista21 ZIPI_Pista22 ; ZIPI_Menu ZIPI_Menu17 with ZIPI_titulo "¿Cómo me orientaré en la mina?", ZIPI_item ZIPI_Pista23 ZIPI_Pista24 ZIPI_Pista25 ZIPI_Pista26 ZIPI_Pista27 ZIPI_Pista28 ; ZIPI_Menu ZIPI_Menu18 with ZIPI_titulo "¿Cómo podré obtener las muestras para la compañía?", ZIPI_item ZIPI_Pista29 ZIPI_Pista30 ; ZIPI_Menu ZIPI_Menu19 with ZIPI_titulo "Acto III: Turismo", ZIPI_item ZIPI_Menu20 ZIPI_Menu21 ZIPI_Menu23 ; ZIPI_Menu ZIPI_Menu20 with ZIPI_titulo "¿Cómo ingreso a la mina?", ZIPI_item ZIPI_Pista31 ZIPI_Pista32 ; ZIPI_Menu ZIPI_Menu21 with ZIPI_titulo "¿Cómo me muevo en la mina?", ZIPI_item ZIPI_Pista33 ZIPI_Pista34 ZIPI_Menu22 ; ZIPI_Menu ZIPI_Menu22 with ZIPI_titulo "¿Cómo cruzo la zanja?", ZIPI_item ZIPI_Pista35 ZIPI_Pista36 ; ZIPI_Menu ZIPI_Menu23 with ZIPI_titulo "¿Cómo obtengo las muestras para la compañía?", ZIPI_item ZIPI_Pista37 ZIPI_Pista38 ; ZIPI_Menu ZIPI_Menu24 with ZIPI_titulo "Vocabulario Técnico", ZIPI_item ZIPI_Otro11 ZIPI_Otro12 ZIPI_Otro13 ZIPI_Otro14 ZIPI_Otro15 ZIPI_Otro16 ; ZIPI_Menu ZIPI_Menu25 with ZIPI_titulo "Curiosidades y Otros", ZIPI_item ZIPI_Menu26 ZIPI_Otro26 ; ZIPI_Menu ZIPI_Menu26 with ZIPI_titulo "Curiosidades", ZIPI_item ZIPI_Otro18 ZIPI_Otro19 ZIPI_Otro20 ZIPI_Otro21 ZIPI_Otro22 ZIPI_Otro23 ZIPI_Otro24 ZIPI_Otro25 ; ZIPI_Pista ZIPI_Pista0 with ZIPI_titulo "¿Para qué sirven las ranuras de tarjetas?", ZIPI_pistas "Muchas veces tendrás que identificarte..." "para hablar con un PSI, usar un ascensor o algún otro aparato." "En tal caso, mete la ranura en la tarjeta..." "y si tienes los permisos adecuados podrás seguir adelante." ; ZIPI_Pista ZIPI_Pista1 with ZIPI_titulo "¿Cuantas veces deberé identificarme?", ZIPI_pistas "Dependerá de con qué o con quién trates." "Si es un PSI, bastará una única vez." "Si es un ascensor u otra cosa, cada vez que lo uses." ; ZIPI_Pista ZIPI_Pista2 with ZIPI_titulo "¿Cómo me oriento en la base?", ZIPI_pistas "A la salida de los ascensores..." "suele haber avisos." "Léelos y toma notas." ; ZIPI_Pista ZIPI_Pista3 with ZIPI_titulo "¿Cómo uso los ascensores?", ZIPI_pistas "Todos los ascensores tienen una ranura para tarjetas." "Usala..." "metiendo tu tarjeta de seguridad en la ranura..." "y luego SUBE, BAJA o pulsa los botones adecuados." "Dependiendo de tus permisos de seguridad, el ascensor te llevará a destino." ; ZIPI_Pista ZIPI_Pista4 with ZIPI_titulo "¿Como entro en la base?", ZIPI_pistas "La compuerta externa tiene un panel..." "Que puedes mirar y leer para saber más." "Si te fijas en el botón del panel..." "Verás que dice 'DESPRESURIZAR'..." "...así que TOCA BOTON o PULSA BOTON y podrás luego abrir la compuerta." ; ZIPI_Pista ZIPI_Pista5 with ZIPI_titulo "¿Como salgo del estanco?", ZIPI_pistas "La compuerta interna del cuarto de estanco tiene un panel..." "Que puedes mirar y leer para saber más..." "Si te fijas en los botones del panel..." "Verás que dicen 'PRESURIZAR' y 'DESPRESURIZAR'..." "Para abrir el estanco a la base debes presurizarlo primero..." "Y para eso, cierra la compuerta externa..." "...y luego TOCA BOTON PRESURIZAR o PULSA BOTON PRESURIZAR y podrás luego abrir la compuerta interna." ; ZIPI_Pista ZIPI_Pista6 with ZIPI_titulo "¿Por qué el Guardia no me oye?", ZIPI_pistas "El traje EVA aísla los sonidos.." "así que sácatelo antes de hablar con el Guardia." ; ZIPI_Pista ZIPI_Pista7 with ZIPI_titulo "¿Cómo me identifico con el Guardia?", ZIPI_pistas "Bajo el monitor..." "hay una ranura para tarjetas." "Usala..." "metiendo tu tarjeta de seguridad en la ranura." ; ZIPI_Pista ZIPI_Pista8 with ZIPI_titulo "¿Por qué no funciona el ascensor?", ZIPI_pistas "Puede que no hayas completado los procedimientos de desembarco." "Vuelve al Estanco..." "Y fíjate en el aviso." "Léelo..." "y deja todas las partes del traje EVA en el Estanco." ; ZIPI_Pista ZIPI_Pista9 with ZIPI_titulo "¿Cómo uso el terminal?", ZIPI_pistas "El terminal tiene una pantalla." "Léela..." "Luego, usa su ranura para tarjetas..." "metiendo tu tarjeta de seguridad en la ranura..." "y luego LEE PANTALLA y usa las opciones del menú." ; ZIPI_Pista ZIPI_Pista10 with ZIPI_titulo "¿Cómo uso el Dispensador de Alimentos?", ZIPI_pistas "Examina el dispensador..." "Y lee su aviso." "Luego, usa su ranura para tarjetas..." "metiendo tu tarjeta de seguridad en la ranura..." "y luego LEE PANTALLA." "A continuación, haz tu selección..." "con TECLEA , usando el nombre del plato que quieres." "Finalmente, cógelo." ; ZIPI_Pista ZIPI_Pista11 with ZIPI_titulo "¿Cómo uso la Estación de Realidad Virtual?", ZIPI_pistas "Examina la estación..." "y entra en ella; revísala..." "y lee su aviso." "Entonces, cierra la cubierta..." "y luego, usa su ranura para tarjetas..." "metiendo tu tarjeta de seguridad en la ranura..." "Ahora, usa las opciones del menú." ; ZIPI_Pista ZIPI_Pista12 with ZIPI_titulo "¿Orientación Laboral, por favor?", ZIPI_pistas "Por el pasillo de acceso se llega a las Oficinas Sindicales." "Entra en ellas..." "y luego habla con el espacial del Sindicato. Te orientará..." "antes y después de hablar con Personal o el Ejecutivo." ; ZIPI_Pista ZIPI_Pista13 with ZIPI_titulo "¿Cómo entro en la oficina del Ejecutivo?", ZIPI_pistas "Ve primero a Asignación de Personal..." "y habla con el Administrativo de Personal." "Una vez tengas tu asignación, podrás entrar." ; ZIPI_Pista ZIPI_Pista14 with ZIPI_titulo "¿Cómo me identifico con el Administrativo de Personal?", ZIPI_pistas "Al costado de su escritorio..." "hay una ranura para tarjetas." "Usala..." "metiendo tu tarjeta de seguridad en la ranura." ; ZIPI_Pista ZIPI_Pista15 with ZIPI_titulo "¿Por qué el Ejecutivo no quiere hablar conmigo?", ZIPI_pistas "Bien vestido, bien recibido." "Si no tienes un uniforme, ve a tus Oficinas Sindicales..." "coge uno de los uniformes colgados..." "y póntelo. El ejecutivo te atenderá ahora." ; ZIPI_Pista ZIPI_Pista16 with ZIPI_titulo "¿Cómo consigo entrenamiento de seguridad?", ZIPI_pistas "Por el Acceso a Administración se llega a las Oficinas Sindicales." "Entra en ellas..." "y luego habla con el espacial del Sindicato. Te ayudará." ; ZIPI_Pista ZIPI_Pista17 with ZIPI_titulo "¿Cómo asimilo el entrenamiento de seguridad?", ZIPI_pistas "Vuelve al Nivel de Servicios..." "ve a la sala de medios..." "y usa la Estación de Realidad Virtual." "Examina la estación..." "y entra en ella; revísala..." "y lee su aviso." "Entonces, cierra la cubierta..." "y luego, usa su ranura para tarjetas..." "metiendo tu tarjeta de seguridad en la ranura..." "Ahora, usa las opciones del menú." "Selecciona 2. Datos Almacenados..." "Luego, selecciona 2. Programas de Entrenamiento..." "y listo. Tendrás asimilado los Procedimientos de Seguridad en Minas; tus recuerdos te avisarán antes de cometer algún error grave." ; ZIPI_Pista ZIPI_Pista18 with ZIPI_titulo "¿Cómo consigo equipamiento de seguridad?", ZIPI_pistas "Ve a Operaciones..." "y dirigete al Área de Equipamiento." "Ahora, habla con el Espacial a cargo. Te pedirá un favor." ; ZIPI_Pista ZIPI_Pista19 with ZIPI_titulo "¿Cómo cumplo el encargo del Espacial de Equipamiento?", ZIPI_pistas "Te ha pedido comida..." "así que vuelve al Nivel de Servicios..." "y entra en el comedor." "Examina el dispensador..." "Y lee su aviso." "Luego, usa su ranura para tarjetas..." "metiendo tu tarjeta de seguridad en la ranura..." "y luego LEE PANTALLA." "A continuación, haz tu selección..." "con TECLEA , usando el nombre del plato que quieres." "Finalmente, cógelo." "Ahora, vuelve donde el Espacial de Equipamiento..." "y habla con él. Te dará un Traje de Minero y unos Grampones." ; ZIPI_Pista ZIPI_Pista20 with ZIPI_titulo "¿Dónde obtengo permisos de Acceso?", ZIPI_pistas "Necesitas Permisos en tu tarjeta para bajar a la mina." "Para conseguirlos, ve a Operaciones..." "y dirígete al Área de Sistemas." ; ZIPI_Pista ZIPI_Pista21 with ZIPI_titulo "¿Cómo entro a donde está la chica?", ZIPI_pistas "En el pasillo, mira la puerta." "Para entrar a Sistemas..." "toca la puerta: la chica te abrirá." ; ZIPI_Pista ZIPI_Pista22 with ZIPI_titulo "¿Cómo consigo Permisos de Acceso?", ZIPI_pistas "Una vez en Sistemas, habla con la chica." "La chica quiere hechos y no palabras, así que..." "Bésala. Te dará permisos de acceso a la mina y sus planos." "Necesitarás una PDA para leerlos." "Mira las pistas de ~¿Cómo me orientaré en la mina?~." ; ZIPI_Pista ZIPI_Pista23 with ZIPI_titulo "¿Cómo consigo planos de la mina?", ZIPI_pistas "Los planos los obtendrás junto con los permisos de acceso." "Mira las pistas de ~¿Como puedo conseguir bajar a la mina?~" ; ZIPI_Pista ZIPI_Pista24 with ZIPI_titulo "¿Cómo consigo la PDA para leer los planos de la mina?", ZIPI_pistas "Para conseguir la PDA para leer los planos, ve al Acceso a la Mina..." "...y fíjate en el Guardia." "Es un tipo triste..." "así que anímalo hablando con él. Te ofrecerá un trato." ; ZIPI_Pista ZIPI_Pista25 with ZIPI_titulo "¿Cómo voy al Dormitorio del Guardia?", ZIPI_pistas "Vuelve al Nivel de Servicios..." "...y entra en el Ascensor del Pasillo Norte." "Para bajar, habilita el teclado..." "metiendo tu tarjeta de seguridad en la ranura." "Ahora, TECLEA 1175 y el ascensor te llevará a destino." ; ZIPI_Pista ZIPI_Pista26 with ZIPI_titulo "¿Cómo entro al Dormitorio del Guardia?", ZIPI_pistas "Una vez en el Acceso a los Dormitorios..." "Abre la puerta del norte." "Para abrirla, habilita el teclado..." "metiendo tu tarjeta de seguridad en la ranura." "Ahora, TECLEA 326 y podrás entrar al Dormitorio del Guardia." ; ZIPI_Pista ZIPI_Pista27 with ZIPI_titulo "¿Qué hago en el Dormitorio del Guardia?", ZIPI_pistas "El dormitorio está un tanto desordenado..." "así que recoge un poco las cosas." "Dobla la manta..." "Coge la ropa..." "y métela en los cajones..." "cerrándolos luego." "Coge la basura..." "y métela en el ducto de reciclado..." "cerrándolo luego." "Ahora, vuelve donde el Guardia..." "y habla con él. Te dará una PDA." ; ZIPI_Pista ZIPI_Pista28 with ZIPI_titulo "¿Cómo leo los planos en la PDA?", ZIPI_pistas "Para poder leer los planos en la PDA..." "mete tu tarjeta en la PDA." "Si tienes planos, estos serán cargados en la PDA." "Para ver los planos, LEE PDA." "Si estás en la mina, mostrará tu ubicación y te dará recomendaciones." ; ZIPI_Pista ZIPI_Pista29 with ZIPI_titulo "¿Dónde obtengo material para toma de muestras?", ZIPI_pistas "Las muestras son material biológico..." "por lo que necesitas ir al Dispensario." "Una vez ahí, habla con el Técnico Médico. Te pedirá algo a cambio." ; ZIPI_Pista ZIPI_Pista30 with ZIPI_titulo "¿Cómo cumplo el encargo del Técnico Médico?", ZIPI_pistas "Ve a Operaciones..." "y dirígete a Procesamiento de Minerales." "Una vez ahí, recoge los restos." "Ahora, vuelve al Dispensario..." "y dale los restos al Técnico Médico: te dará un Frasco de Muestras." ; ZIPI_Pista ZIPI_Pista31 with ZIPI_titulo "¿Cómo salgo del Ascensor?", ZIPI_pistas "Fíjate en el Compartimiento abierto." "Toma el soplete..." "y ábrete camino con él..." "cortando el suelo con el soplete." ; ZIPI_Pista ZIPI_Pista32 with ZIPI_titulo "¿Cómo abro la puerta al final del tiro del ascensor?", ZIPI_pistas "Mira las puertas..." "y examina la palanca." "Usa la palanca para abrir la puerta..." "tirando o empujando la palanca." ; ZIPI_Pista ZIPI_Pista33 with ZIPI_titulo "¿Cómo me oriento en la mina?", ZIPI_pistas "Antes de bajar a la mina, tienes que haber obtenido planos y una PDA." "Para poder leer los planos en la PDA..." "mete tu tarjeta en la PDA." "Si tienes planos, estos serán cargados en la PDA." "Para ver los planos, LEE PDA." "Te dará recomendaciones según tu ubicación en la mina." "Si te metes en las galerías de extracción, te ayudará a salir." ; ZIPI_Pista ZIPI_Pista34 with ZIPI_titulo "¿Cómo puedo bajar o subir las pendientes?", ZIPI_pistas "Antes de bajar a la mina, obtuviste equipamiento de seguridad." "Ponte los grampones." "Te permitirán bajar y subir sin problemas." ; ZIPI_Pista ZIPI_Pista35 with ZIPI_titulo "¿Cómo camino sobre la zanja?", ZIPI_pistas "Mira las barras metálicas largas..." "con ellas puedes hacer un puente." "Con el soplete láser..." "Corta una de las barras largas: obtendrás unas barras metálicas cortas." "Pon las barras largas restantes sobre la zanja..." "y sobre las barras largas las barras cortas que obtuviste." "Ahora, puedes pasar encima de la zanja." ; ZIPI_Pista ZIPI_Pista36 with ZIPI_titulo "¿Cómo salto sobre la zanja?", ZIPI_pistas "Antes de bajar a la mina, obtuviste equipamiento de seguridad." "Ponte los grampones..." "y salta sobre la zanja." ; ZIPI_Pista ZIPI_Pista37 with ZIPI_titulo "¿Cómo cojo las flores?", ZIPI_pistas "Las flores son peligrosas..." "así que no las tomes o toques directamente." "Revisa el vehículo estacionado." "Entra en el..." "cortando la puerta con el soplete." "Coge el brazo manipulador..." "y coge una flor usando el brazo..." "con COGE FLOR CON BRAZO." ; ZIPI_Pista ZIPI_Pista38 with ZIPI_titulo "¿Cómo me llevo las flores?", ZIPI_pistas "Antes de bajar debiste conseguir un Frasco de Muestras." "para meter la flor en el frasco..." "primero abre el frasco..." "mete la flor en el frasco..." "y luego cierra el frasco." ; ZIPI_Otro ZIPI_Otro0 with ZIPI_titulo "Asignaciones Laborales", ZIPI_ejecutar [; if (Ejecutivo hasnt visitado) print "Asignación pendiente: por favor, diríjase a Personal, Nivel Administración"; else print "Asignación actual: "; ]; ZIPI_Otro ZIPI_Otro1 with ZIPI_titulo "Permisos de Acceso", ZIPI_ejecutar [; print "Nivel Ingreso: No Habilitado^"; print "Nivel Servicios: Habilitado^"; print "Nivel Administración: Habilitado^"; if (Ejecutivo has visitado) print "Nivel Operaciones: Habilitado^"; else print "Nivel Operaciones: No Habilitado^"; print "Nivel Dormitorio: Habilitado^"; if (TecnicaSistemas has visitado) print "Nivel Minas: Habilitado^"; else print "Nivel Minas: No Habilitado^"; ]; ZIPI_Otro ZIPI_Otro2 with ZIPI_titulo "Ocaso en la Playa", ZIPI_ejecutar [; if (jugador in EstacionRV) Playa.proyeccion(); else { print "Descanse y relájese en una playa tropical al atardecer, disfrutando "; print "de una fogata, un sabroso pescado a las grasas y... quién sabe, a lo "; print "mejor hay nativos ~amistosos~ cerca."; } ]; ZIPI_Otro ZIPI_Otro3 with ZIPI_titulo "Cacería en la Jungla", ZIPI_ejecutar [; if (jugador in EstacionRV) Caceria.proyeccion(); else { print "La tribu tiene hambre.^"; print "No ha habido suerte en las últimas cacerías.^"; print "Pero ahora, el gran cazador está en la pista de una presa... y sólo uno "; print "sobrevivirá. Incluye clima y vegetación de jungla."; } ]; ZIPI_Otro ZIPI_Otro4 with ZIPI_titulo "Dragones", ZIPI_ejecutar [; if (jugador in EstacionRV) Dragon.proyeccion(); else { print "Sea un dragón volador en un planeta de fantasía.^"; print "Vuele.^"; print "Luche.^"; print "...y busque una pareja."; } ]; ZIPI_Otro ZIPI_Otro5 with ZIPI_titulo "Harem", ZIPI_ejecutar [; if (jugador in EstacionRV) Harem.proyeccion(); else { print "Recréese en un harem árabe y, como el Gran Sultán, atienda a cientos "; print "de esposas ansiosas, ardientes y sumisas."; } ]; ZIPI_Otro ZIPI_Otro6 with ZIPI_titulo "Matanza Corporativa", ZIPI_ejecutar [; if (jugador in EstacionRV) Matanza.proyeccion(); else { print "Lo acaban de despedir.^"; print "Está en el comedor ejecutivo de la compañía... con un soplete láser.^"; print "Las puertas están soldadas.^"; print "Los ejecutivos corren como conejos aterrorizados.^"; print "Use su imaginación... y disfrute su venganza."; } ]; ZIPI_Otro ZIPI_Otro7 with ZIPI_titulo "Programas de Entrenamiento", ZIPI_ejecutar [; if ((Ejecutivo hasnt visitado) || (Sindical hasnt general) ) print "Sin datos cargados^"; else if (EstacionRV hasnt general) { if (jugador in EstacionRV) { give EstacionRV general; PrintAutoPausa("Instalando: Procedimientos de Seguridad en Minas^"); PrintAutoPausa("Procedimientos de Seguridad en Minas: instalado.^"); PrintAutoPausa("Tenga siempre presente las siguientes indicaciones para operar en la mina.^"); PrintAutoPausa("1. Utilice traje protector de minero en TODO momento.^"); PrintAutoPausa("2. Póngase grampones de seguridad para escalar o bajar pendientes.^"); PrintAutoPausa("3. Utilice una PDA con planos de la mina cargados para poder navegar en galerías de extracción.^"); } else print "Procedimientos de Seguridad en Minas: no instalado^"; } else { print "Procedimientos de Seguridad en Minas: ^"; print "Tenga siempre presente las siguientes indicaciones para operar en la mina.^"; print "1. Utilice traje protector de minero en TODO momento.^"; print "2. Póngase grampones de seguridad para escalar o bajar pendientes.^"; print "3. Utilice una PDA con planos de la mina cargados para poder navegar en galerías de extracción.^"; } ]; ZIPI_Otro ZIPI_Otro8 with ZIPI_titulo "Diagramas", ZIPI_ejecutar [; if (TecnicaSistemas has visitado) print "Plano de Sector de Minas: instalado^"; else print "Sin datos cargados^ "; ]; ZIPI_Otro ZIPI_Otro9 with ZIPI_titulo "Comandos Principales", ZIPI_ejecutar [; print "Las órdenes siguientes son básicas y pueden encontrarse en casi cualquier aventura conversacional. El jugador puede tratar siempre de hacer otras acciones.^^"; print "n, Norte - Desplazarse al norte.^"; print "s, Sur - Desplazarse al sur.^"; print "e, Este - Desplazarse al este.^"; print "o, Oeste - Desplazarse al oeste.^"; print "X, Salidas - Muestra un listado con las salidas de una localidad.^"; print "Arriba, Subir, a - Subir.^"; print "Abajo, Bajar, b - Bajar.^"; print "Ayuda - Esta ayuda.^"; print "ex x, examinar x - Da una descripción de x.^"; print "busca en x, mira en x - Revisar un objeto para ver si contiene algo más...^"; print "coge x, deja x - El objeto x pasa a ser o deja de ser llevado.^"; print "coge x con y - Usando el objeto y, el objeto x pasa a ser o deja de ser llevado.^"; print "mete x en y - El objeto x deja de ser llevado y queda dentro de y.^"; print "mete y a x - El objeto y deja de ser llevado y queda dentro de x.^"; print "saca y de x - El objeto y sale de x y pasa a ser llevado.^"; print "abre x - Si x es abrible, x queda abierto (contenedor, puerta).^"; print "cierra x - Si x es cerrable, x queda cerrado (contenedor, puerta).^"; print "corta x con y - Corta el objeto x usando el objeto y.^"; print "habla con x - Hablar con el PSI x.^"; print "conversa con x - Conversa con el PSI x.^"; print "besa a x - Relaciónate más íntimamente con el PSI x.^"; print "i, inventario - Da una lista de los objetos llevados.^"; print "Pistas - Pistas para resolver el juego (evite la tentación...).^"; print "save, guardar - Grabar el estado actual de la partida (recomendable...).^"; print "load, cargar - Recuperar un estado de partida ya guardado.^"; print "quit, fin, terminar - Terminar la partida en juego.^"; ]; ZIPI_Otro ZIPI_Otro10 with ZIPI_titulo "Otros Comandos", ZIPI_ejecutar [; print "Las órdenes, en general, se pueden dar según:^"; print " o bien^"; print " o bien^"; print " ^"; ]; ZIPI_Otro ZIPI_Otro11 with ZIPI_titulo "EVA", ZIPI_ejecutar [; print "Extra Vehicular Activity. Actividad extravehicular. Actividad realizada fuera de una estación o nave espacial, ya sea en una cápsula o plataforma de desplazamiento o bien con un simple traje. "; ]; ZIPI_Otro ZIPI_Otro12 with ZIPI_titulo "LCD", ZIPI_ejecutar [; print "Liquid Cristal Display. Pantalla de Cristal Líquido. "; ]; ZIPI_Otro ZIPI_Otro13 with ZIPI_titulo "OTV", ZIPI_ejecutar [; print "Orbital Transfer Vehicle. Vehículo de Transferencia Orbital. Usado para traslado de personal o material de una órbita a otra. "; ]; ZIPI_Otro ZIPI_Otro14 with ZIPI_titulo "RCR", ZIPI_ejecutar [; print "Retro-Correction Rockets. Cohetes de corrección e inversión de rumbo, para variar la trayectoria del vehículo o frenar su impulso. "; ]; ZIPI_Otro ZIPI_Otro15 with ZIPI_titulo "SNAFU", ZIPI_ejecutar [; print "Situation Normal, All Fucked Up. Situación Normal, Todo Jodido. Usado para señalar situaciones de caos; no pasa nada, pero todo se ha ido al diablo... "; ]; ZIPI_Otro ZIPI_Otro16 with ZIPI_titulo "LASER", ZIPI_ejecutar [; print "Light Amplification by Stimulated Emission of Radiation, amplificación de luz mediante emisión inducida de radiación. "; ]; ZIPI_Otro ZIPI_Otro17 with ZIPI_titulo "Agradecimientos", ZIPI_ejecutar [; print "A mis betatesters: Sarganar y Mapache, con una paciencia digna de alabanza.^^"; print "A toda la comunidad IF española: el foro del CAAD y tantísimos sitios web con ejemplos y documentos invaluables.^^"; print "A Alessandro Schillaci y Luis Fernández, creadores de JIF (en español), un pedazo de herramienta para el desarrollo en InformATE!^^"; print "A Baltasarq, una vez más por Código Concedido y por txtMAP, un estupendo apoyo para la creación de IF.^^"; print "A Radio Marte Libre, una vez más por Código Concedido.^^"; print "A Mapache, por Código Concedido.^^"; print "A Dwalin, Urbatain, Guimel, Baltasarq, Mel Hython, Sarganar, Maureen, Eliuk Blau, Jarel, Mapache, Presi y la comunidad del CAAD en general por los consejos, comentarios y críticas recibidas durante el desarrollo de la FICOMP 2007, que han hecho posible (y necesaria) esta versión de ~Macetas~.^^"; print "A todos mis compañeros de trabajo, pasados, presentes y futuros.^^"; print "...y a Allen Steele, por su irremplazable, invaluable e involuntaria colaboración."; ]; ZIPI_Otro ZIPI_Otro18 with ZIPI_titulo "Estilo y Decoración en la Base", ZIPI_ejecutar [; print "La decoración y el estilo del interior de la Base dicen mucho de la compañía. Míralos (literalmente). "; ]; ZIPI_Otro ZIPI_Otro19 with ZIPI_titulo "Avisos en la Base", ZIPI_ejecutar [; print "La compañía ha puesto aquí y allá avisos al servicio de los usuarios de la Base. Léelos. "; ]; ZIPI_Otro ZIPI_Otro20 with ZIPI_titulo "¿Cómo son los Espaciales?", ZIPI_ejecutar [; print "Tócate, Mírate, Huélete... Córtate... Gesticula... Sopla... "; ]; ZIPI_Otro ZIPI_Otro21 with ZIPI_titulo "¿Cómo $%@@64# hablan los Espaciales?", ZIPI_ejecutar [; print "En la base, nadie escucha tus groserías. Haz el intento... "; ]; ZIPI_Otro ZIPI_Otro22 with ZIPI_titulo "¿Cómo $%@@64# son los Espaciales de la Base?", ZIPI_ejecutar [; print "Los espaciales de la base son gente ocupada... y susceptible. Háblales y verás... "; ]; ZIPI_Otro ZIPI_Otro23 with ZIPI_titulo "¿Cómo comen los Espaciales de la Base?", ZIPI_ejecutar [; print "Con mucha hambre y pocos recursos. Prueba a abandonar comida en el comedor... "; ]; ZIPI_Otro ZIPI_Otro24 with ZIPI_titulo "Seguridad del Trabajo en la Mina", ZIPI_ejecutar [; print "En una Mina, algunos descuidos se pagan muy caros. Arriésgate sin el equipo adecuado y verás... "; ]; ZIPI_Otro ZIPI_Otro25 with ZIPI_titulo "Seguridad Biológica en la Mina", ZIPI_ejecutar [; print "Las flores son una especie muy agresiva. Prueba cogerlas, cortarlas... "; ]; ZIPI_Otro ZIPI_Otro26 with ZIPI_titulo "Historia de Macetas^^", ZIPI_ejecutar [; print "Sobre la Creación de la Obra^^"; print "La verdad, todo esto empezó como un ajuste de cuentas de autor...^^"; print "Una vez publicado ~Goteras~, del cual este trabajo es una secuela, recibí muchas críticas, la mayoría positivas, y uno de los comentarios que se repetía sobre ~Goteras~ era sobre la longitud del relato; era demasiado breve y todos querían saber más de los Espaciales y su mundo.^^"; print "De hecho, cometí el desatino (oh vanidad) de indicar, entonces, que efectivamente tenía esbozado el argumento de ~qué pasó después de Goteras~, pero que me frenaba el esfuerzo requerido para hacer una aventura ~larga~; los problemas propios de un relato más largo, sumado a mi gusto por los detalles extra-literarios (decorados y otros) que dan profundidad al relato, hacían prever que el desarrollo de una aventura larga podía resultarme inabordable, particularmente dado el tiempo del que dispongo para estos menesteres, más bien escaso: están el trabajo, las labores domésticas, mi matrimonio, mis 2 hijos 2, mi familia... todo ello que forma parte de la Vida.^^"; print "Pero... aquí estamos, después de 5 meses de esfuerzo, con la obra terminada, y la satisfacción es grande: he logrado completar una aventura larga, me he dado el gusto de explorar a fondo el mundo del ~espacio industrializado corporativo~ de los Espaciales, y he logrado plasmar, aquí y allá, algunas reflexiones ~no tan ciencia ficción~ sobre el mundo del trabajo.^^"; print "Sobre el Tema de la Obra^^"; print "Esta obra trata sobre el mundo del trabajo en un futuro muy plausible y no muy lejano: un espacio industrializado, dominado por grandes corporaciones. Al igual que ~Goteras~, la inspiración del ~modelo del mundo~ fue tomada de 'Orbital Decay' de Allen Steele, en su versión traducida al español como 'Decadencia Orbital' (editada por Ultramar).^"; print "Y sobre el tema del mundo del trabajo moderno, debo dejarles este mensaje, a modo de resumen, si se quiere: después de casi un siglo de luchas por los derechos del trabajador, las cosas han cambiado y se han conseguido mejores condiciones laborales y de vida para la gran masa que trabaja para subsistir.^"; print "Pero no del todo.^^"; print "Existen aun condiciones abismales de trabajo en todo el mundo; en algunos casos forzadas por gobiernos, empresas o personas demasiado ambiciosas y poderosas, y en otros, oh estupidez humana, aceptadas y escogidas libremente por personas que pudieron haber trabajado en otra cosa, para provecho propio y de los demás: ha surgido así el concepto de ~trabajo basura~; rutinario, agobiante, sacrificado y sin horizontes de superación.^"; print "Y esto, lamentablemente, no es nada nuevo. Ya en el Génesis, Dios le prometía a Adán que ~cultivarás la tierra, pero ella sólo te dará espinas y abrojos~.^^"; print "Jamás he visto mejor síntesis de lo que, con un poco de nuestra fabulosa depredación mutua, llega a ser el mundo del trabajo.^^"; print "Lo más triste es que, precisamente, en este momento ~las espinas y los abrojos~ del trabajo somos nosotros mismos, y mientras no aprendamos a controlar nuestras ambiciones y limitar la satisfacción de todas nuestras necesidades (reales o imaginadas) seguiremos con un ritmo de vida que perpetua las condiciones que hacen desgraciadamente necesario ese tipo de ~trabajo basura~, del que ni siquiera los Espaciales se han salvado, con toda su tecnología...^^"; print "~Espinas y abrojos~.^^"; print "Santiago de Chile, 10 de Julio, 2007 "; ]; ! VARIABLES GLOBALES Global tiro; Global galeria; ! CLASES GENERICAS ! Clase para PSI Class PSI class Object with antes [; Oler, Tocar : "Sin su permiso, mejor que no..."; Atacar : "Ni de broma. En esta base, el más endeble se enoja y te parte en dos..."; Besar, Probar, Follar: "No tenemos tanta confianza..."; ], has estatico animado; ! Meta clase DecoradoAmpliado Class Decorado_Ampliado class Decorado with antes [; Examinar: rfalse; Follar: "¿¡Con eso?! No gracias..."; Coger: "¿¡Y para qué voy a cargar con eso, eh?!"; Empujar: "No parece que se pueda empujar. Me canso. Bah..."; Oler: if (TrajeEVA has puesto) "No puedo oler nada con el traje EVA puesto... salvo lo que hay dentro..."; else if (TrajeMinero has puesto) "No puedo oler nada con el traje de minero puesto... salvo lo que hay dentro..."; else "No parece que huela a nada especial."; Escuchar: if (TrajeEVA has puesto) "No puedo oír nada de afuera con el traje EVA puesto... salvo lo que hay dentro..."; else if (TrajeMinero has puesto) "No puedo oír nada con el traje de minero puesto... salvo lo que hay dentro..."; else "No produce ningún sonido."; Tocar: "No me voy a arriesgar: bastantes porquerías tengo ya que manipular."; BuscarEn: <>; default: "No me pagarán por hacerlo, así que no lo haré."; ]; ! Clase para Objetos del escenario manipulables por el jugador y que ! son parte de algún puzzle Class Objeto_Escenario class Object with antes [; Examinar: rfalse; Coger : "No voy a empezar a desguazar la base..."; Empujar: "No parece que se pueda empujar. Me canso. Bah..."; Oler: if (TrajeEVA has puesto) "No puedo oler nada con el traje EVA puesto... salvo lo que hay dentro..."; else if (TrajeMinero has puesto) "No puedo oler nada con el traje de minero puesto... salvo lo que hay dentro..."; else "No parece que huela a nada especial."; Escuchar: if (TrajeEVA has puesto) "No puedo oír nada de afuera con el traje EVA puesto... salvo lo que hay dentro..."; else if (TrajeMinero has puesto) "No puedo oír nada con el traje de minero puesto... salvo lo que hay dentro..."; else "No produce ningún sonido."; ], has escenario; ! Clase para espaciales decorado Class Decorado_Espaciales class PSI with nombre_mp 'espaciales', nombre_m 'espacial', antes [num; Oler : "La verdad, les vendría bien un baño, pero al precio que están..."; Hablar : print "El espacial apenas me mira con cara hastiada y me espeta:^^"; num=random(8); if ( (localizacion == HallServicios) || (localizacion == ServiciosPasilloNorte) || (localizacion == ServiciosPasilloOeste) ) switch (num){ 1: "~¡Córrete de mi camino!~"; 2: "~Voy apurado, no jodas...~"; 3: "~¿Tengo cara de Informaciones, yo?^Piérdete...~"; 4: PrintAutoPausa("~¡ESTOY HACIENDO HORAS EXTRA!^"); PrintAutoPausa("¡NO -"); PrintAutoPausa(" ME -"); PrintAutoPausa(" HABLES!~"); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡Yonosé, yonofui, notengolaculpaynoquierosaberlo!^^"); PrintAutoPausa("¡¡AAAARRRGGGHHH!!!~^^"); PrintAutoPausa("...y corre a perderse.^^"); PrintAutoPausa("Somos gente sólida, hasta el último hombre."); rtrue; 8: "~Otro mamón más... ¡Qué día!~"; } else if (localizacion == Comedor) switch (num){ 1: "~No molestes... estoy comiendo...~"; 2: "~¿Te hago caso o como?...^ Hmmm...^ No.^ Como.~"; 3: "~¿Tengo cara de Informaciones, yo?^Piérdete...~"; 4: PrintAutoPausa("~¡TENGO POCO TIEMPO TÍO!^"); PrintAutoPausa("¡AHORA -"); PrintAutoPausa(" QUIERO -"); PrintAutoPausa(" COMER!~"); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡No, aminoporfavorno, yosoloqueríacomeralgo!^^"); PrintAutoPausa("¡¡NOOOOOOO!!!~^^"); PrintAutoPausa("...y corre a perderse.^^"); PrintAutoPausa("Estamos algo tensos, parece."); rtrue; 8: "~Piérdete. Quiero comer en paz.~"; } else if (localizacion == Gimnasio) switch (num){ 1: "~Como me vuelvas a interrumpir, reemplazo la máquina contigo...~"; 2: "~¿Te han ignorado hoy?^ ¿No?^ Pues, fíjate en mí...~"; 3: "~¿Tengo cara de Informaciones, yo?^Piérdete...~"; 4: PrintAutoPausa("~1...^"); PrintAutoPausa("2...^"); PrintAutoPausa("3...^"); PrintAutoPausa("¡Joder, imbécil, que me desconcentraste!~"); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡Alejatedemí, sadicomasoquista, estamaquinaesmía!^^"); PrintAutoPausa("¡¡ALEJATEEEE!!!~^^"); PrintAutoPausa("...y corre a perderse.^^"); PrintAutoPausa("Mente sana en un...?"); rtrue; 8: "~¡Qué.. uf... te... uf... den!...~"; } else if (localizacion == SalaMedios) switch (num){ 1: "~¿Qué?...~"; 2: "~¿Sabes para qué vine aquí?^ ¿No?^ Pues, para no tener que hablar con gente como tú...~"; 3: "~¿Tengo cara de Informaciones, yo?^Piérdete...~"; 4: PrintAutoPausa("~Mira, la verdad no tengo demasiado tiempo libre.^"); PrintAutoPausa("Y, así, trato de aprovechar el que tengo.^"); PrintAutoPausa("¿Entiendes lo que te quiero decir?.^"); PrintAutoPausa("¡NO ME MOLESTES!~"); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡Mibutaca, socabronhijoputa, esmibutacaentiendes?!^^"); PrintAutoPausa("¡¡MIAAAAAAA!!!~^^"); PrintAutoPausa("...y corre a perderse.^^"); PrintAutoPausa("Bueno, ahora ya no es más suya..."); rtrue; 8: "~¡Tan bien que estaba y llegaste!...~"; } else if (localizacion == Reciclado) switch (num){ 1: "~Todo apesta... y tú también.~"; 2: "~¡¿Déjame en paz, quieres?!~"; 3: "~¿No me han jodido lo suficiente, ya?^Piérdete...~"; 4: PrintAutoPausa("~Te parecerá curioso que te lo diga, pero...^"); PrintAutoPausa("¡NO - "); PrintAutoPausa("ESTOY - "); PrintAutoPausa("DE HUMOR!~"); rtrue; 5: "~¡Fuera de mi camino!~"; 6: "~¡¡NO!!~"; 7: "~¡¡Si te burlas, te parto en dos!!~"; 8: "~Otro mamón curioso...~"; } else if (localizacion == ProcesamientoMinerales) switch (num){ 1: "~¡¡Cuidado, imbécil!!~"; 2: "~Piérdete...~"; 3: "~¿Quieres terminar en una fundición, imbécil?^ Hazte a un lado...~"; 4: PrintAutoPausa("~Cuidado...^"); PrintAutoPausa("¡CUIDAD...!^"); PrintAutoPausa("...^"); PrintAutoPausa("¡¡CASI CAI AL FUEGO POR TU CULPA, IMBECIL!!~"); rtrue; 5: "~¡Fuera de mi camino!~"; 6: "~¡¡NO!!~"; 7: "~¡¡Sal de ahí, mamón!!~"; 8: "~Otro mamón curioso...~"; } else if (localizacion == PasilloAccesoMina) switch (num){ 1: "~No me molestes...~"; 2: "~Ahora no, tío, ahora no...~"; 3: "~¿Mmmhh?...~"; 4: PrintAutoPausa("~No...^"); PrintAutoPausa("Que no...^"); PrintAutoPausa("¿No entendiste?...^"); PrintAutoPausa("¡NO QUIERO SABERLO!~"); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡Yaterminómiturno, entiendesmamón, terminéporhoy!^^"); PrintAutoPausa("¡¡NOQUIEROMAAAAS!!!~^^"); PrintAutoPausa("...y corre a perderse.^^"); PrintAutoPausa("Está motivado, el tipo..."); rtrue; 8: "~¡Qué manera de terminar mi turno: un mamón!...~"; } else if (localizacion == GaleriaPrincipalMina) switch (num){ 1: "~¿Eh?...~"; 2: "~Grrrr...~"; 3: "~¿Mmmhh?...~"; 4: PrintAutoPausa("~¡¡BASTA!!^"); PrintAutoPausa("¡¿DONDE ESTA EL PUTO ELEVADOR?!^"); PrintAutoPausa("¡¡QUIERO SALIR DE AQUIII!!~^^"); PrintAutoPausa("Unos colegas sujetan al tipo, que se debate como poseso..."); rtrue; 5: "~¡¿Te conozco?!~"; 6: "~¡¡NO!!~"; 7: PrintAutoPausa("~¡Lasluces, ohdiosmio, laslucesmesiguen!^^"); PrintAutoPausa("¡¡ME ATRAPARAAAAN!!!~^^"); PrintAutoPausa("...y corre hasta golpearse en una pared.^^"); PrintAutoPausa("¿Sobretiempo?..."); rtrue; 8: "~¡Tu madre, so...!~"; } Tocar, Coger, Empujar, Atacar, Besar, Probar, Follar : "Mejor no molestarlos.^ La verdad, los espaciales somos gente más bien... susceptible."; ] has masculino nombreplural; !Clase para ranura de tarjeta de seguridad Class Ranura_Tarjeta class Objeto_Escenario with nombre 'ranura', descripcion "Pues... eso, la ranura donde se inserta la tarjeta.", antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ], has femenino recipiente abierto; [DescripcionExpulsaTarjeta num; ! num; num = random(20); switch (num){ 2: print "^Otra vez, con esta tarjeta..."; 4: print "^Maldito plástico."; 6: print "^Si me dieran un crédito por cada vez que uso esta porquería..."; 8: print "^Mierda de tarjeta."; 10: print "^La compañía me tiene frito, con tanta seguridad."; 12: print "^Por favor, basta."; 14: print "^Tarjetas... Ranuras... Tarjetas... Ra..."; 16: print "^Me cago en los sistemas de seguridad. Lo juro."; 18: print "^Ya me está doliendo la mano..."; 20: print "^Le estoy sacando filo, a la tarjeta..."; }; rtrue; ]; !Meta Clase para usar Puertas Class Habitacion with descripcion[; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); rtrue; ], descripcion_larga "descripción larga de la habitación", descripcion_corta "descripción corta de la habitación", antes [num; Gesticular : "Me pongo a hacer morisquetas y meneo los brazos y piernas como un imbécil..."; Dormir : "Qué más quisiera, pero la compañía no me lo permite..."; Despertarse : "Ya estoy, ya estoy..."; Soplar : "Hiperventilo como un pobre Subacuático."; Tacos : num=random(8); switch (num){ 1: "¡SACATE EL CASCO EN UN ESTANCO NO PRESURIZADO!"; 2: "¡ME CAGO EN UNA PISCINA DE EJECUTIVOS, CON EL PRESIDENTE DE LA COMPAÑIA DE TAPON!"; 3: "¡LOS ESPACIALES LO HACEMOS EN GRAVEDAD 0 Y EN HORAS EXTRA!"; 4: "¡METANO!"; 5: "¡TOMATE UN LAXANTE, PONTE EL TRAJE EVA Y SAL AL ESPACIO A QUE TE DEN!"; 6: "¡PON EL CULO EN LA SALIDA DE MIS PROPULSORES!"; 7: "¡TU MADRE!"; 8: "¡MAMONAZO!"; }; ] has luz; ! Meta objeto para implementar < >> Class Objeto_Localidad class Object with antes [; Coger : "No creo poder con la base, ni siquiera un lugar a la vez..."; Oler: <>; Escuchar: <>; ], has escenario femenino; ! Habitación Limbo Habitacion Limbo "El Limbo" with descripcion "¡Eh! ¿Cómo has llegado aquí? Estos Betatesters...", al_ne CompuertaReactor, has luz; !Clases para Ascensores Class Localidad_Ascensor class Habitacion with descripcion_larga "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar. Por entre la rejilla se ve la roca del asteroide; han excavado el tiro directo en la roca, sin agregar revestimiento alguno. La compañía, economizando como sea y donde sea...^ En un costado del ascensor hay un par de botones direccionales, con una ranura para tarjetas de acceso.", descripcion_corta "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar.^ En un costado del ascensor hay un par de botones direccionales, con una ranura para tarjetas de acceso.", antes [; Dejar, Lanzar : "No me gusta dejar cosas en los ascensores: uno se descuida y se van entre la rejilla del suelo y luego no hay como recuperarlas. Además, los de mantenimiento son unos ladrones..."; Escuchar : if (uno==0) "Hay como un ligero zumbido eléctrico. Bueno, al menos este trasto funciona."; Oler : if (uno==0) "Huele a ozono...^^ Un encanto para los sentidos..."; Examinar: if (uno == obj_abajo) "El suelo está hecho de rejilla metálica reforzada."; if (uno == obj_arriba) "El techo está hecho de rejilla metálica reforzada."; ], no_puedes_ir "Mierda, con los espacios estrechos..." ; Class Objeto_Ascensor class Objeto_Escenario with nombre 'ascensor' 'elevador', adjetivos 'modelo' 'industrial', descripcion "Es un ascensor de modelo industrial.", antes [; Meterse, Entrar : <>; ], has masculino entrable; ! Clase para botón de ascensor sube (^) Class Boton_Ascensor_Sube class Objeto_Escenario with nombre 'boton' 'sube' 'subir' 'arriba', adjetivos 'redondo', descripcion "Es un botón redondo, con un triángulo negro apuntando hacia arriba.", antes [; Tocar, Empujar : "Se escuchan dos tonos bajos, y no ocurre nada..."; ] has masculino; ! Clase para botón de ascensor baja (v) Class Boton_Ascensor_Baja class Objeto_Escenario with nombre 'boton' 'baja' 'bajar' 'abajo', adjetivos 'redondo', descripcion "Es un botón redondo, con un triángulo negro apuntando hacia abajo.", antes [; Tocar, Empujar : "Se escuchan dos tonos bajos, y no ocurre nada..."; ] has masculino; ! Decoración del interior del ascensor Decorado_Ampliado DecoradoAscensores Localidad_Ascensor with esta_en [; if (localizacion ofclass Localidad_Ascensor) return true; else return false; ], describir 'pared' DescripcionParedesAscensor G_FEMENINO 'paredes' DescripcionParedesAscensor G_FEMENINO + G_PLURAL 'muros' DescripcionParedesAscensor G_MASCULINO + G_PLURAL 'muro' DescripcionParedesAscensor G_MASCULINO 'luz' "Lechosa y blanca.^ Un asco, pero permite moverse sin tropezar y trabajar sin adivinar lo que uno ve." G_FEMENINO 'rejilla' "La rejilla es una malla metálica gruesa que cubre las paredes y el techo del ascensor. No necesita elementos estructurales y se requiere un peso desproporcionado para superar su resistencia o tensión." G_FEMENINO 'roca' "La roca desnuda del asteroide. La han pulido un poco para que el ascensor se mueva por el tiro, pero poco más." G_FEMENINO 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO ; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadAscensor "ascensor" with nombre 'ascensor' 'elevador', descripcion [; np = 2; switch (SiguientePalabra()) { 'ascensor' : if (localizacion ofclass Localidad_Ascensor) {;<>;} else "No veo eso que dices."; 'elevador' : if (localizacion ofclass Localidad_Ascensor) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Ascensor) return true; else return false; ] has masculino; ! Decoración del interior del ascensor Decorado_Ampliado DecoradoBotonesAscensores Localidad_Ascensor with esta_en [; if ( (localizacion ofclass Localidad_Ascensor) && (localizacion ~= AscensorDormitorios) && (localizacion ~= AscensorServiciosPasilloNorte) ) return true; else return false; ], antes [; Tocar, Empujar : "¿Cuál de los dos botones?"; ], describir 'botones' "Dos botones redondos, con triángulos negros al centro de cada uno. Uno apunta para arriba y el otro..." G_MASCULINO + G_PLURAL 'triangulos' "Pues... figuras geométricas de tres lados. Estos son isósceles. Su área interior esta pintada de negro." G_MASCULINO + G_PLURAL ; [DescripcionParedesAscensor; return "Las paredes están hechas de rejilla metálica reforzada."; ]; ! EL JUGADOR Object miJugador with descripcion "Soy un tipo no muy alto y más bien fornido, como la mayoría de los Espaciales (y las mujeres robustas se ven guapísimas). No tengo mucho pelo corporal (menos líos con la higiene) y no llevo tatuajes. En fin, que soy uno más del lote...", antes [; Tocar : "Tengo la piel más tersa, después del viaje: algo que agradecer al criosueño." ; Oler : "La verdad, no me vendría mal un baño. Puede que me pueda costear uno en la base...^ Eventualmente..."; Cortar : "No estoy de humor ni tengo mis sadoaccesorios a mano: a lo mejor en la base...^ En una de esas..."; Escuchar : "Mi corazón late, mis pulmones resuellan... ¡Soy una máquina de trabajar!"; Frotar : "Frotándome con energía, gano un poco de calor."; ] ; ! Objetos del Jugador Object Ropa "ropa criogénica" Limbo with nombre_f 'ropa' 'camiseta', nombre_fp 'telitas', nombre_mp 'shorts', adjetivos 'criogenica', descripcion [; print "Son unos shorts y una camiseta para sueño criogénico. No abrigan mucho, pero, ¿qué sentido tiene, si te van a congelar?^ Espero conseguir pronto otra cosa; no puedo andar por la base sólo con estas telitas..."; ], antes [; Desvestir : "¿Y andar en pelotas? Nones..."; ] has femenino prenda puesto; Object TarjetaJugador "tarjeta de seguridad y datos" miJugador with nombre 'tarjeta', nombre_mp 'datos', nombre_f 'seguridad', descripcion "Una tarjeta magnética de seguridad y datos, con mi número de identificación y todo.^ Esta compañía, taaan personalizada en el trato.", antes [; Mostrar, Dar : switch (otro) { GuardiaControlIngreso : print "La tarjeta rebota contra la pantalla del monitor"; if (TrajeEVA has puesto) { print ".^ El guardia me mira impávido... sin decir palabra.^ Hace algo con las manos fuera de mi vista y en la pantalla aparece un mensaje:^^"; style bold; print "¡USA LA RANURA BAJO EL MONITOR, IMBECIL!^"; style roman; rtrue; } else " y el guardia me espeta ~¡Usa la ranura bajo el monitor, imbécil!~"; TecnicoMedico : "El técnico la rechaza con un ~No gracias, ya tengo una.~"; Administrativo : "El administrativo parece ofendido. Me la devuelve, diciendo ~Las tarjetas de identificación son personales e ¡in - trans - fe - ri - bles!~"; Sindical : "El sindical se ríe y me la devuelve, murmurando ~No me gustaría estar en tus zapatos...~"; Ejecutivo : "El ejecutivo me la devuelve, serio, diciendo ~Las tarjetas de identificación son personales e instransferibles.~"; TecnicaSistemas : "La chica hace un mohín delicioso, y luego dice ~Seguro que me puedes ofrecer algo más... interesante...~"; EspacialEquipamiento : "El espacial la rechaza, molesto. ~Ya tengo una...~ dice, aburrido."; GuardiaAccesoMina : "El hombrón me la devuelve, diciendo ~No juegues, espacial, si la pierdes es un dolor de cabeza enorme...~"; default : "El espacial me mira como si yo estuviera loco. Sacude la cabeza y se aleja sin que pueda insitirle."; }; ], has femenino ; Object TrajeEVA "traje EVA" miJugador with nombre_m 'traje' 'mono', ! 'casco', nombre_mp 'guantes', nombre_fp 'botas', adjetivos 'eva', descripcion "Del manual: un traje para actividades fuera de la nave.", antes [; Oler : "Huele a oxígeno... a sudor...^^ La nave olía mejor por dentro, y ya es decir mucho..."; Dejar, Desvestir : if ((localizacion == Muelle) || ((localizacion == EstancoMuelle) & (EstancoMuelle hasnt general)) ) "Ni de joda: me gusta la vida..."; else { give self ~puesto; move self to Limbo; move ropa to jugador; give ropa puesto; move Mono to jugador; move Casco to jugador; move Guantes to jugador; move Botas to jugador; "Al soltar el primer componente, el traje EVA se despresuriza suavemente.^ Es un alivio, esto, que si no reviento como globo, con todo ese jaleo de gases.^ Mi profesor de termodinámica estaría taan orgulloso de mi vocabulario..."; } Vestir : if (UniformeJugador in Jugador) "De ninguna manera. Ya estoy listo para entrar a la base y no me apetece volver a salir."; else { give self puesto; give Mono ~puesto; give Casco ~puesto; give Guantes ~puesto; give Botas ~puesto; give ropa ~puesto; move Mono to Limbo; move Casco to Limbo; move Guantes to Limbo; move Botas to Limbo; move ropa to Limbo; "^Al sellar el último componente, escucho un silbido de aire... y luego ya no oigo nada: el traje EVA se ha presurizado.^ Afortunadamente, el traje tiene un sistema bastante avanzado de reciclaje de aire, así que al menos no hay la joda esa de tanques de oxígeno y tal...^ ...pero, claro, solo produce oxígeno, y ventila algunos gases, mientras que otros...^ ...bueno, otros gases lo acompañan a uno.^ Moraleja: si va a usar un traje EVA, coma liviano..."; } ], has masculino prenda puesto; ! ZONA DE LLEGADA !Clase para localidades de la Recepcion de la Base Class Localidad_Recepcion class Habitacion with antes [; Escuchar : if (uno==0) "Nada...^^ A ratos, resulta enervante."; Oler : if (uno==0) { if (TrajeEVA has puesto) "Huele a oxígeno... a sudor...^^ La nave olía mejor por dentro, y ya es decir mucho..."; else "Huele a oxígeno... a plástico...^ todo limpio y artificial.^^ Un encanto para los sentidos..."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la zona de acceso a la base están hecho de losetas plásticas. La decoración estilo Chic-Compañía."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración del interior de la base Decorado_Ampliado DecoradoZonaRecepcion Localidad_Recepcion with esta_en [; if ((localizacion ofclass Localidad_Recepcion) && (localizacion ~= Muelle)) return true; else return false; ], describir 'pared' DescripcionParedesRecepcion G_FEMENINO 'paredes' DescripcionParedesRecepcion G_FEMENINO + G_PLURAL 'muros' DescripcionParedesRecepcion G_MASCULINO + G_PLURAL 'muro' DescripcionParedesRecepcion G_MASCULINO 'luz' "Lechosa y blanca.^ Un asco, pero permite moverse sin tropezar y trabajar sin adivinar lo que uno ve." G_FEMENINO 'rendijas' "Son unos surcos oscuros y porosos que corren entre las losetas" G_FEMENINO + G_PLURAL 'losetas' "Son unos cuadrados plásticos con textura antideslizante. Alguna vez fueron blancos, pero el uso y los detergentes de la compañía los han dejado más bien amarillentos." G_FEMENINO + G_PLURAL 'decoracion' "Techo. Suelo. Paredes.^ Por todos lados, el estilo Chic-Compañía." G_FEMENINO 'estilo' "Todo es liso y sin detalles, de color blanco lechoso tirando a gris, muy parecido al Edificio Corporativo, por cierto; cuando lo visité, me impresionó la uniformidad de todo: sus muebles, sus paredes... y las caras de la gente. Muy alegre..." G_MASCULINO ; [DescripcionParedesRecepcion; return "Las paredes y el techo de la entrada a la base están hechas del mismo material del suelo...^^ ...las mismas losetas, con las mismas rendijas...^^ ...porque a la compañía la decoración le interesa tanto como nuestro bienestar."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadRecepcion "localidad de recepción" with nombre 'muelle' 'estanco' 'control', adjetivos 'ingreso', descripcion [; np = 2; switch (SiguientePalabra()) { 'muelle' : if (localizacion == Muelle) {;<>;} else "No veo eso que dices."; 'estanco' : if (localizacion == EstancoMuelle) {;<>;} else "No veo eso que dices."; 'control' : if (localizacion == ControlIngreso) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Recepcion) return true; else return false; ] has masculino; ! Muelle Localidad_Recepcion Muelle "Muelle" with irrelevante 'guia' 'recepcion' 'masa', descripcion [; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); print "Puedo ver la compuerta del estanco aquí al lado, "; if (CompuertaExternaEstancoMuelle has abierta) "abierta, dejando libre la entrada a la base."; else "cerrada, impidiendo la entrada a la base."; ], descripcion_larga "El muelle del asteroide es bastante largo y ancho... tanto, que de no ser por las luces de guía, no vería un carajo. La noche del espacio vacío nos rodea por completo y las estrellas apenas... bueno, toda esa coña de la oscuridad.^ Aquí al lado está la OTV... pero nadie aparece para recibirme o ver cómo quedó el vagón después de esa mierda de viaje.^ Que maravilla de recepción...", descripcion_corta "El muelle del asteroide es bastante largo y ancho.^ Aquí al lado está la OTV, pero nadie más se digna presentarse.^ Que maravilla de recepción...", antes [; Escuchar : if (uno==0) "Oigo mi propia respiración dentro del traje...^ agitada...^^ El zumbido apagado de los sistemas del traje EVA...^^ El leve roce de mi cuerpo con el traje...^^ Y absolutamente nada más..."; Oler : if (uno==0) "Huele a oxígeno... a sudor...^^ La OTV olía mejor por dentro, y ya es decir mucho..."; Examinar: if ( (uno == obj_abajo) || (uno == obj_arriba) ) "Roca de asteroide, bastante pulida, por cierto. Nadie quiere hacerles daño a las OTV..."; ], adentro CompuertaExternaEstancoMuelle, no_puedes_ir "Mejor entrar a la base de una buena vez..." ; ! Objetos del Muelle Conexion CompuertaExternaEstancoMuelle "compuerta externa del estanco" with nombre 'puerta' 'compuerta', adjetivos 'estanco' 'externa' 'redonda', descripcion [; print "La compuerta es de forma redonda y bastante grande. Tiene una gruesa barra al costado."; if (localizacion==Muelle) print " A la izquierda de la puerta hay un panel LCD.^"; else print "^"; rtrue; ], despues [; Abrir : if (EstancoMuelle has general) { give self ~abierta; "Aferro la barra con todas mis fuerzas, pero la muy obcecada no se abre."; } else if (self has abierta) "Tomando la barra, la compuerta se abre lentamente, en completo silencio..."; Cerrar : "Tomando la barra, la compuerta se cierra lentamente, sin sonido..."; ], has femenino escenario abrible; Objeto_Escenario BarraExternaEstancoMuelle "barra de compuerta externa" Muelle with nombre 'barra', adjetivos 'gruesa' 'metalica' 'externa' 'pulida', descripcion "Una gruesa barra metálica bien pulida, fija a un costado de la compuerta externa.", antes [; Tirar : <>; Empujar : <>; ] has femenino; Objeto_Escenario PanelMuelle "panel LCD" Muelle with nombre_m 'panel' 'texto', nombre_mp 'mensajes', adjetivos 'pequeño' 'LCD', descripcion [; print "Es un pequeño panel LCD de mensajes de texto. Está instalado en la pared, a la izquierda de la puerta. "; if (EstancoMuelle hasnt general) print "El panel está de color verde. "; else print "El panel está de color rojo. "; "Bajo el panel se puede ver un botón."; ], antes [; Consultar, Leer: print "En el panel se lee:^^"; if (EstancoMuelle has general) { style bold; print "ESTANCO PRESURIZADO.^ PUERTA EXTERNA BLOQUEADA."; style roman; rtrue; } else { style bold; print "ESTANCO NO PRESURIZADO.^ PUERTA EXTERNA HABILITADA."; style roman; rtrue; } ], has masculino legible; Objeto_Escenario BotonDespresurizarMuelle "botón Despresurizar" Muelle with nombre 'boton', nombre_f 'etiqueta', adjetivos 'despresurizar' 'pequeño' 'alargado', descripcion "Es un pequeño botón alargado, ubicado bajo el panel de la compuerta. La etiqueta escrita en el botón dice DESPRESURIZAR.", antes [; Tocar, Empujar : if ((EstancoMuelle has general) && (CompuertaExternaEstancoMuelle hasnt abierta)){ give EstancoMuelle ~general; "La luz del panel parpadea una vez y cambia de color."; } else "La luz del panel parpadea dos veces y no cambia de color."; ], has masculino; ! Decoración del Muelle Decorado_Ampliado DecoradoMuelle Muelle with describir 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO 'roca' "Toda la roca que hay a la vista es del asteroide, y está bastante pulida, por cierto. Nadie quiere hacerles daño a las OTV..." G_FEMENINO 'luces' "Son unas luces pequeñitas (no más de un palmo) ubicadas en algunos puntos del fuselaje, y del suelo, para aprovechar la máxima eficiencia. Resultado: puedes ver donde pisas y algo de lo que estás haciendo... y poco más." G_FEMENINO + G_PLURAL 'noche' "Es un decir, en el espacio, cuando no está oscuro, es que tienes problemas..." G_FEMENINO 'espacio' "La frontera final y todo ese rollo...^ Estrellas hasta donde alcanza la vista... frías estrellas..." G_MASCULINO 'vacio' "La Nada. La mente de un ejecutivo de la compañía. Joder, mi cuenta de créditos..." G_MASCULINO 'estrellas' "Se ven unas pocas... y no estoy para astronomía, francamente." G_FEMENINO + G_PLURAL 'oscuridad' "A ver... es como si... esto... no hay caso, no logro verla." G_FEMENINO ; Decorado_Ampliado DecoradoMuelle2 Muelle with describir 'pared' DescripcionParedesMuelle G_FEMENINO 'paredes' DescripcionParedesMuelle G_FEMENINO + G_PLURAL 'muros' DescripcionParedesMuelle G_MASCULINO + G_PLURAL 'muro' DescripcionParedesMuelle G_MASCULINO 'OTV' DescripcionOTV G_FEMENINO 'nave' DescripcionOTV G_FEMENINO 'bote' DescripcionOTV G_MASCULINO 'vagon' DescripcionOTV G_MASCULINO 'fuselaje' "La cubierta externa del OTV. No es muy resistente, según pude comprobar..." G_MASCULINO 'retrocohetes' "Ubicados aquí y allá, los RCR se usan para frenar algo al OTV o cambiar su rumbo... pero no alcanzan para dar impulso o iniciar maniobras. Este OTV es, después de todo, un aparato inercial..." G_MASCULINO + G_PLURAL ; [DescripcionOTV; return "El OTV es la típica nave usada por la compañía: un módulo cilíndrico, oblongo, de color gris sucio (alguna vez fue blanco), con retrocohetes esparcidos aquí y allá... y que ha quedado para el retiro o al menos unas vacaciones en el taller, después de nuestro accidentado viaje.^ Si no fuera por mí, no habría siquiera una placa plástica recuperable de ese desastre."; ]; [DescripcionParedesMuelle; return "Las paredes del muelle son de roca sólida."; ]; ! Estanco del Muelle Localidad_Recepcion EstancoMuelle "Estanco" with descripcion[; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); print "Hay un aviso en la pared. Al norte, la compuerta interna "; if (CompuertaInternaEstancoMuelle hasnt abierto) print "impide el acceso "; else print "permite entrar "; print "a la base. Al sur, la compuerta externa está "; if (CompuertaExternaEstancoMuelle has abierta) "abierta."; else "cerrada."; ], descripcion_larga "El estanco es una habitación cuadrada, decorada al más puro estilo chic-compañía.^ La verdad, este estanco es bastante más amplio que el del OTV, y creo que por lo menos unos veinte espaciales podrían estar aquí cómodamente, con trajes EVA y todo.^ Sin embargo, ahora mismo, no hay nadie más aquí dentro... y me encuentro a mis anchas, después de tantas estrecheces en el OTV.", descripcion_corta "El estanco es una habitación cuadrada, decorada al más puro estilo chic-compañía. Aparte de mi mismo, no hay nadie más aquí dentro...", adentro CompuertaInternaEstancoMuelle, al_n [;<>;], afuera CompuertaExternaEstancoMuelle, al_s [;<>;] has general ; ! Objetos del Estanco Conexion CompuertaInternaEstancoMuelle "compuerta interna del estanco" with nombre 'puerta' 'compuerta', adjetivos 'estanco' 'interna' 'cuadrada', descripcion [; print "La compuerta es de forma cuadrada y bastante grande. Tiene una delgada barra al costado."; if (localizacion==EstancoMuelle) " A la izquierda de la puerta hay un panel LCD."; else print "^"; rtrue; ], despues [; Abrir : if (EstancoMuelle hasnt general){ give self ~abierto; "Aferras la barra con todas tus fuerzas, pero la puerta no se abre."; } else if (self has abierta) "Tomando la barra, la compuerta se abre lentamente, en completo silencio..."; Cerrar : "Tomando la barra, la compuerta se cierra lentamente, sin sonido alguno..."; ], has femenino escenario abrible; Objeto_Escenario BarraExternaEstanco "barra de compuerta externa" EstancoMuelle with nombre 'barra', adjetivos 'gruesa' 'metalica' 'externa' 'pulida', descripcion "Una gruesa barra metálica bien pulida, fija a un costado de la compuerta externa.", antes [; Tirar : <>; Empujar : <>; ] has femenino; Objeto_Escenario BarraInternaEstanco "barra de compuerta interna" EstancoMuelle with nombre 'barra', adjetivos 'delgada' 'metalica' 'interna' 'pulida', descripcion "Una delgada barra metálica bien pulida, fija a un costado de la compuerta interna.", antes [; Tirar : <>; Empujar : <>; ] has femenino; Objeto_Escenario AvisoEstancoMuelle "aviso" EstancoMuelle with nombre_m 'aviso' 'algo' 'cartel' 'letrero', nombre_f 'placa', nombre_fp 'letras', adjetivos 'plastica' 'pegada' 'grandes', descripcion "Es una placa plástica pegada a la pared. Tiene algo escrito en letras grandes.", antes[; Coger : "Corrijo; más que pegado, parece estar fundido con la pared. No hay caso."; Consultar, Leer: style bold; print "ATENCION:^"; style roman; print "PROHIBIDO EL INGRESO A LA BASE^ PORTANDO TRAJE EVA O SUS PARTES^^ DEJE TRAJE EVA EN ESTE ESTANCO^ PARA SU MANTENCION Y CUIDADO"; if (self hasnt visitado) { give self visitado; "^^La verdad, un tío con Traje EVA deambulando por la base... no sé, es como llevar escrito PATEAME en la espalda..."; } rtrue; ], has masculino legible; Objeto_Escenario PanelEstancoMuelle "panel LCD" EstancoMuelle with nombre_m 'panel' 'texto', nombre_mp 'mensajes', adjetivos 'pequeño' 'LCD', descripcion [; print "Es un pequeño panel LCD de mensajes de texto. Está instalado en la pared, a la izquierda de la puerta. "; if (EstancoMuelle has general) print "El panel está de color verde. "; else print "El panel está de color rojo. "; "Bajo el panel se puede ver dos botones."; ], antes [; Consultar, Leer: print "En el panel se lee:^^"; if (EstancoMuelle has general) { style bold; print "ESTANCO PRESURIZADO.^ PUERTA EXTERNA BLOQUEADA.^ PUERTA INTERNA HABILITADA."; style roman; rtrue; } else { style bold; print "ESTANCO NO PRESURIZADO.^ PUERTA EXTERNA HABILITADA.^ PUERTA INTERNA BLOQUEADA."; style roman; rtrue; } ], has masculino legible; Objeto_Escenario BotonPresurizarEstanco "botón Presurizar" EstancoMuelle with nombre 'boton', nombre_f 'etiqueta', adjetivos 'presurizar' 'pequeño' 'alargado', descripcion "Es un pequeño botón alargado, ubicado bajo el panel de la compuerta. La etiqueta escrita en el botón dice PRESURIZAR.", antes [; Tocar, Empujar : if ((EstancoMuelle hasnt general) && (CompuertaInternaEstancoMuelle hasnt abierta) && (CompuertaExternaEstancoMuelle hasnt abierta) ){ give EstancoMuelle general; "La luz del panel parpadea una vez y cambia de color."; } else "La luz del panel parpadea dos veces y no cambia de color."; ], has masculino; Objeto_Escenario BotonDespresurizarEstanco "botón Despresurizar" EstancoMuelle with nombre 'boton', nombre_f 'etiqueta', adjetivos 'despresurizar' 'pequeño' 'alargado', descripcion "Es un pequeño botón alargado, ubicado bajo el panel de la compuerta. La etiqueta escrita en el botón dice DESPRESURIZAR.", antes [; Tocar, Empujar : if ((EstancoMuelle has general) && (CompuertaInternaEstancoMuelle hasnt abierta) && (CompuertaExternaEstancoMuelle hasnt abierta) && (TrajeEVA has puesto) ){ give EstancoMuelle ~general; "La luz del panel parpadea una vez y cambia de color."; } else "La luz del panel parpadea dos veces y no cambia de color."; ], has masculino; ! Partes del traje EVA Object Mono "mono de traje EVA" Limbo with nombre_m 'mono' 'enganche' 'cuello' 'sello', nombre_mp 'enganches' 'sellos', nombre_f 'manga' 'pierna', nombre_fp 'mangas' 'piernas', adjetivos 'traje' 'eva', descripcion [; print "Es el buzo de un traje EVA."; if (self hasnt visitado) { give self visitado; " Está hecho de un material de color gris, bastante desgastado por el uso. Tiene enganches y sellos en las mangas piernas y cuello para acoplar un casco, un par de guantes y un par de botas que...^^ ...^^ Joder, si parece que estuviera recitándole un manual a un novato...^ ¡¡He visto y usado trajes EVA hasta el hartazgo y ya sé como son!!^^ ...^^ Parece que estoy algo mosqueado..."; } else " Ya los conozco."; ], antes [; Oler : "Huele mal..."; ], despues [; Vestir : "Me lo pongo con cuidado. Con esto no se juega..."; ] has masculino prenda; Object Casco "casco de traje EVA" Limbo with nombre_m 'casco' 'visor', nombre_f 'esfera', adjetivos 'traje' 'eva', descripcion [; print "Es el casco de un traje EVA."; if (self hasnt visitado) { give self visitado; " La esfera o visor del casco está hecho de un material transparente, en apariencia frágil pero increíblemente duro y resist...^^ ...^^ ¡¡Me cago en la hipnopedia de la compañía!!^ ¡¡Me niego a repetir la lección como un jodido loro!!^^ ...^^ Estoy acojonao, vaya..."; } else " Huele mal..."; ], antes [; Oler : "Huele mal..."; Vestir : if (mono hasnt puesto) "No hay cómo ponérselo si no me pongo el mono primero..."; else { give self puesto; print "Los sellos están en buen estado y calzan bien... ¡Ya está!"; if ((Guantes has puesto) && (Botas has puesto)){ move TrajeEva to jugador; <>; }; rtrue; } ], has masculino prenda; Object Guantes "guantes de traje EVA" Limbo with nombre_mp 'guantes' 'dedos', nombre_fp 'palmas', adjetivos 'traje' 'eva', descripcion [; print "Son los guantes de un traje EVA."; if (self hasnt visitado) { give self visitado; " Las palmas y los dedos se adaptan al tamaño y grosor de cualquier mano y permiten manipular cosas no demasiado pequeñas. El material es resist...^^ ...^^ ¡¡Pero si parezco un técnico de la compañía!!^ ¡¡Basta de tanta estupidez sobre los implementos de trabajo!!^^ ...^^ Ya, me desquité un poco..."; } else " Me vienen a mano, jo..."; ], antes [; Oler : "Huelen mal..."; Vestir : if (mono hasnt puesto) "No hay cómo ponérselos si no me pongo el mono primero..."; else { give self puesto; print "Los sellos están en buen estado y calzan bien... ¡OK!"; if ((Casco has puesto) && (Botas has puesto)){ move TrajeEva to jugador; <>; }; rtrue; } ], has masculino nombreplural prenda; Object Botas "botas de traje EVA" Limbo with nombre_m 'acolchado', nombre_fp 'botas' 'suelas', adjetivos 'traje' 'eva' 'inteligente' 'magneticas', descripcion [; print "Son las botas de un traje EVA."; if (self hasnt visitado) { give self visitado; " Tienen un acolchado inteligente que se adaptan al tamaño de cualquier pie, derecho o izquierdo y sus suelas magnéticas permiten...^^ ...^^ ¡¡Como puedo discursear sobre un par de malditos zapatos!!^ ¡¡Me dan ganas de arrearlas a patadas!!^^ ...^^ Ya, las patearé cuando me los ponga..."; } else " No pesan demasiado, curiosamente..."; ], antes [; Oler : "Huelen mal..."; Vestir : if (mono hasnt puesto) "No hay cómo ponérselas si no me pongo el mono primero"; else { give self puesto; print "Los sellos están en buen estado y calzan bien... ¡Puestas!"; if ((Guantes has puesto) && (Casco has puesto)){ move TrajeEva to jugador; <>; }; rtrue; } ], has femenino nombreplural prenda; ! Decoración del Estanco Decorado_Ampliado DecoradoEstanco EstancoMuelle with describir 'botones' "Son dos pequeños botones de forma alargada, ubicados bajo el panel. Tienen cada uno una etiqueta escrita: PRESURIZAR y DESPRESURIZAR." G_MASCULINO + G_PLURAL ; ! Control de Ingreso Localidad_Recepcion ControlIngreso "Control de Ingreso" with descripcion[; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); print "Al sur, la compuerta interna "; if (CompuertaInternaEstancoMuelle hasnt abierto) print "impide el acceso al "; else print "permite salir por el "; print "estanco.^ Al fondo, veo "; if (DecoradoGrillaControlIngreso in self) print "la grilla energética en "; "la entrada del ascensor de acceso a la base."; ], descripcion_larga "Estoy en el control de ingreso de la base. Por aquí se verifica los permisos de seguridad y se da acceso solo al personal autorizado. Aunque no es más que un habitación pequeña con un monitor blindado y un armario empotrado en la pared, hay que andar con cuidado.^ Si uno da un paso en falso aquí, las consecuencias, como más de un espía industrial ha descubierto, pueden ser sumamente desagradables.", descripcion_corta "Estoy en el control de ingreso de la base... que no es más que un habitación pequeña con un monitor blindado y un armario empotrado en la pared.", antes [; Ir, Entrar : if ( (uno == obj_adentro) && (DecoradoGrillaControlIngreso in self) ) "No... no quiero pasar a través de la grilla de seguridad. Duele y luego, encima, te mata."; ], al_s CompuertaInternaEstancoMuelle, afuera [;<>;], adentro AscensorControlIngreso ; ! Objetos de Control de Ingreso Objeto_Ascensor ObjAscensorControlIngreso "ascensor industrial" ControlIngreso; Objeto_Escenario BarraInternaControlIngreso "barra de compuerta interna" ControlIngreso with nombre 'barra', adjetivos 'delgada' 'metalica' 'interna', descripcion "Una delgada barra metálica bien pulida, fija a un costado de la compuerta interna.", antes [; Tirar : <>; Empujar : <>; ] has femenino; Ranura_Tarjeta RanuraMonitor "Ranura de Monitor" ControlIngreso with irrelevante 'borde', adjetivos 'roja', descripcion "Pues... eso, la ranura donde se inserta la tarjeta. Tiene un borde rojo.", antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (self hasnt general) { give self general; PrintAutoPausa("Se escucha un BIP corto y la ranura expulsa mi tarjeta."); PrintAutoPausa(" La cojo.^^"); PrintAutoPausa("Casi me había olvidado de estos aparatos.^^"); PrintAutoPausa("Si la compañía no ha tenido una revolución de tecnología de seguridad y aun no consiguen sistemas telepáticos, seguro veré varias de estas malditas ranuras por todas partes..."); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; PSI GuardiaControlIngreso "Guardia" ControlIngreso with nombre 'guardia' 'gorila', adjetivos 'seguridad', describir "Desde el monitor, un guardia me mira atentamente.", descripcion "Incluso para ser un espacial, es un verdadero gorila. Su traje le queda apenas. Me mira sin verme, esperando a que tome la iniciativa.", vida [; Follar : "Ni aunque me diera un pase de ejecutivo..."; Hablar : ! El jugador tiene el traje EVA puesta: el guardia no puede oirlo if (TrajeEVA has puesto){ if (self hasnt visitado) { give self visitado; PrintAutoPausa("El guardia me mira impávido... sin decir palabra.^"); PrintAutoPausa("Hace algo con las manos fuera de mi vista.^"); PrintAutoPausa("De pronto, aparece en el monitor un texto en grandes letras rojas:^^"); style bold; PrintAutoPausa("NO PUEDO OIRTE^^"); style roman; "Luego, el texto se borra y el guardia me dedica una sonrisa burlona."; } else { print "El guardia hace algo con las manos fuera de mi vista.^ Y una vez más el monitor muestra un texto en grandes letras rojas:^^"; style bold; print "NO PUEDO OIRTE IMBECIL, QUITATE EL TRAJE EVA^^"; style roman; "Luego, el texto se borra y el guardia me mira con hastío."; } } ! El jugador no se ha identificado if (RanuraMonitor hasnt general) "Antes que yo pueda articular nada, me ladra:^^ ~¡Identifícate primero!~"; ! El jugador no tiene el traje EVA puesta y ya se ha identificado if (self hasnt general) { give ArmarioControl general; give self general; move DecoradoGrillaControlIngreso to Limbo; BienvenidaGuardia.proyeccion(); rtrue; } else "Me ignora completamente."; ] has masculino; Objeto_Escenario ArmarioControl "Armario" ControlIngreso with nombre 'armario', nombre_fp 'puertas', adjetivos 'empotrado', descripcion "Un armario para equipamiento básico, empotrado en la pared.", antes [; Abrir, Tirar, Empujar : if (self hasnt general) "Tratas de empujar las puertas, tirar de ellas.^ No hay caso, no se abre..."; else if (UniformeJugador in self) { give self abierto; "Dentro encuentro un uniforme de obrero estándar."; } ] has masculino recipiente abrible ~abierto; Object UniformeJugador "uniforme corporativo" ArmarioControl with nombre 'uniforme' 'mono', adjetivos 'azul' 'corporativo' 'obrero', descripcion "Un mono azul para obrero, de una sola pieza, con las botas de seguridad incorporadas.^ Lo último en moda ~todos-somos-iguales-pero-algunos-somos-más-iguales~.", antes [; Desvestir : "¿Y andar en ropa interior? ¿¡En la base?! Negativo..."; ], despues [; Coger : give self ~oculto; Vestir : move ropa to Limbo; ] has masculino prenda; ! Decoración de Control de Ingreso Decorado_Ampliado DecoradoControlIngreso ControlIngreso with describir 'traje' "Es un monopieza de color rojo. El guardia lo lleva como una segunda piel, ajustado por todos lados, apenas conteniendo su impresionante físico. Lo dicho: un gorila (con perdón de esos pobres animales)." G_MASCULINO 'monitor' "Un monitor de seguridad, a prueba de toda clase de agresiones violentas, empotrado en la pared. Puedo ver al guardia de seguridad, con una cara de aburrido total.^ Bajo el monitor se ve una ranura para una tarjeta de seguridad." G_MASCULINO ; Decorado_Ampliado DecoradoGrillaControlIngreso ControlIngreso with antes [; Tocar, Coger, Empujar, Girar : "No gracias... me gustan mis manos y cada uno de sus dedos."; ], describir 'grilla' "Es una red de rayos láser entrecruzados... una forma sutil de la compañía de decir ~NO PASAR~. Si tu tarjeta de acceso no te autoriza, la única forma de pasar la grilla es en cubitos...^ Detrás de la grilla hay un ascensor." G_FEMENINO 'rayos' "Filamentos láser, de color rojo. No tocar..." G_MASCULINO + G_PLURAL 'laser' "Light Amplification by Stimulated Emission of Radiation, amplificación de luz mediante emisión inducida de radiación...^ Joder, que memorión técnico que soy, tío." G_MASCULINO ; ! El Ascensor de Control Ingreso Localidad_Ascensor AscensorControlIngreso "Ascensor: Control de Ingreso" with antes [; Ir : if (uno == obj_arriba) { if (AscensorControlIngresoSube hasnt general) <>; else { if (UniformeJugador notin jugador) { move UniformeJugador to Sindicato; give UniformeJugador oculto; } PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Subimos...^"); PrintAutoPausa("Las puertas se abren.^"); give AscensorServiciosPasilloSur visitado; } } ], afuera ControlIngreso, arriba AscensorServiciosPasilloSur, abajo [;<>;] ; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorControlIngresoBaja "Botón Baja" AscensorControlIngreso; Boton_Ascensor_Sube AscensorControlIngresoSube "Botón Sube" AscensorControlIngreso with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Ranura_Tarjeta RanuraAscControlIngreso "Ranura de Ascensor" AscensorControlIngreso with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (AscensorControlIngresoSube hasnt general) { if ( (Casco notin EstancoMuelle) | (Guantes notin EstancoMuelle) || (Botas notin EstancoMuelle) || (Mono notin EstancoMuelle) ) { print "Se escucha un tono grave y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { give AscensorControlIngresoSube general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; ! ZONA DE SERVICIOS !Clase para localidades de Zona de Servicios Class Localidad_Servicios class Habitacion with antes [; Escuchar : if (uno==0) "Ajetreo, voces, pasos...^^ Bueno, estamos en territorio de Espaciales en Transito."; Oler : if (uno==0) { "Huele a oxígeno... a sudor... a plástico...^ Un encanto para los sentidos..."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la zona de servicios de la base están hecho de losetas plásticas. La decoración estilo Chic-Compañía."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración de la Zona de Servicios Decorado_Ampliado DecoradoZonaServicios Localidad_Servicios with esta_en [; if (localizacion ofclass Localidad_Servicios) return true; else return false; ], describir 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO 'pared' DescripcionParedesServicios G_FEMENINO 'paredes' DescripcionParedesServicios G_FEMENINO + G_PLURAL 'muros' DescripcionParedesServicios G_MASCULINO + G_PLURAL 'muro' DescripcionParedesServicios G_MASCULINO 'luz' "Amarillenta y a ratos p-p-par-par-padeante-te-te.^ Un asco, pero permite moverse y trabajar sin demasiada torpeza" G_FEMENINO 'rendijas' "Son unos surcos oscuros y porosos que corren entre las losetas" G_FEMENINO + G_PLURAL 'losetas' "Son unos cuadrados plásticos con textura antideslizante. Alguna vez fueron blancos, pero el uso y el tránsito constante de mis colegas espaciales los han dejado muy desgastados: de la textura antideslizante, apenas queda nada. Supongo que la compañía las reemplazará después del primer accidente.^ Antes ¿para qué?..." G_FEMENINO + G_PLURAL 'decoracion' "Techo. Suelo. Paredes.^ Por todos lados, el estilo Chic-Compañía." G_FEMENINO 'estilo' "Todo es liso y sin detalles, de color blanco lechoso tirando a gris, muy parecido al Edificio Corporativo, por cierto; cuando lo visité, me impresionó la uniformidad de todo: sus muebles, sus paredes... y las caras de la gente. Muy alegre..." G_MASCULINO ; [DescripcionParedesServicios; return "Las paredes y el techo de la zona de servicios de la base están hechas del mismo material del suelo...^^ ...las mismas losetas, con las mismas rendijas, todo con urgente necesidad de reemplazo...^^ ...porque a la compañía la decoración le interesa tanto como nuestro bienestar."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadServicios "localidad de servicios" with nombre_m 'pasillo' 'hall' 'comedor' 'dispensario' 'gimnasio', nombre_f 'sala', adjetivos 'servicios' 'medios', descripcion [; np = 2; switch (SiguientePalabra()) { 'pasillo' : if ( (localizacion == ServiciosPasilloSur) || (localizacion == ServiciosPasilloNorte) || (localizacion == ServiciosPasilloEste) || (localizacion == ServiciosPasilloOeste) ) {;<>;} else "No veo eso que dices."; 'hall' : if (localizacion == HallServicios) {;<>;} else "No veo eso que dices."; 'comedor' : if (localizacion == Comedor) {;<>;} else "No veo eso que dices."; 'dispensario' : if (localizacion == Dispensario) {;<>;} else "No veo eso que dices."; 'gimnasio' : if (localizacion == Gimnasio) {;<>;} else "No veo eso que dices."; 'sala' : if (localizacion == SalaMedios) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Servicios) return true; else return false; ] has masculino; ! Ascensor Servicios Pasillo Sur Localidad_Ascensor AscensorServiciosPasilloSur "Ascensor: Servicios Pasillo Sur" with afuera ServiciosPasilloSur, al_n ServiciosPasilloSur, arriba [;<>;], abajo [;<>;]; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorServiciosPasilloSurBaja "Botón Baja" AscensorServiciosPasilloSur; Boton_Ascensor_Sube AscensorServiciosPasilloSurSube "Botón Sube" AscensorServiciosPasilloSur; Ranura_Tarjeta RanuraAscServiciosPasilloSur "Ranura de Ascensor" AscensorServiciosPasilloSur; ! Servicios Pasillo Sur Localidad_Servicios ServiciosPasilloSur "Pasillo Sur Servicios" with descripcion "El pasillo sur del nivel de servicios. No hay nadie a la vista.^ En la pared puedo ver un aviso.^ El pasillo continúa hacia el norte, mientras que al sur se entra al ascensor.", al_n HallServicios, al_s AscensorServiciosPasilloSur, adentro AscensorServiciosPasilloSur ; ! Objetos de Servicios Pasillo Sur Objeto_Ascensor ObjAscensorServiciosPasilloSur "ascensor industrial" ServiciosPasilloSur; ! Decoración de Servicios Pasillo Sur Decorado_Ampliado DecoradoServiciosPasilloSur ServiciosPasilloSur with describir 'diagrama' DescripcionAvisoPasilloSur G_MASCULINO 'aviso' DescripcionAvisoPasilloSur G_MASCULINO 'cartel' DescripcionAvisoPasilloSur G_MASCULINO 'letrero' DescripcionAvisoPasilloSur G_MASCULINO ; [DescripcionAvisoPasilloSur; return "Es un diagrama impreso con la organización de este nivel:^ - Desde el pasillo sur se llega a un Hall de distribución al norte.^ - En el pasillo norte está el dispensario y el comedor, así como el ascensor de acceso a los dormitorios.^ - En el pasillo oeste hay una sala de medios y un gimnasio.^ - Al final del pasillo este se llega al ascensor para ir al área administrativa y a la zona de operaciones. (indica ~AUTORIZACION REQUERIDA~)"; ]; ! Hall Servicios Localidad_Servicios HallServicios "Hall Servicios" with irrelevante 'pasillos' 'dependencias', descripcion_larga "El hall del área de servicios es el punto central de este nivel y desde aquí se distribuyen los diferentes pasillos hacia todas las demás dependencias de la base, al norte, este, sur y oeste.^ Es un área de mucho ajetreo y mucho movimiento, así que hay que estar alerta para no meterse en el camino de nadie. En general, los espaciales nunca estamos de buen humor cuando estamos trabajando... y, vaya, por aquí no veo a nadie con cara de turista.^ Hay un terminal de informaciones a un costado.", descripcion_corta "El hall del área de servicios, desde donde se distribuyen los diferentes pasillos al norte, este, sur y oeste.^ Hay un terminal de informaciones a un costado.", despues [; ! La pantalla se inhabilita al salir Ir : give RanuraTerminal ~general; ], al_n ServiciosPasilloNorte, al_s ServiciosPasilloSur, al_e ServiciosPasilloEste, al_o ServiciosPasilloOeste, ; ! Objetos de Hall Servicios Objeto_Escenario TerminalHallServicios "Terminal" HallServicios with nombre_m 'terminal', nombre_f 'pantalla', adjetivos 'informaciones', descripcion "Es un terminal de datos sencillo, con su pantalla sensible al tacto y una ranura para tarjetas en la base.", antes [; Tocar, Empujar, Leer : if (RanuraTerminal hasnt general) { print "En el panel se lee:^^"; style bold; print "INSERTE SU TARJETA^ DE IDENTIFICACION"; style roman; rtrue; } else { give RanuraTerminal ~general; ZIPI_RunMenuT(ZIPI_Menu0); rtrue; } ] has masculino legible; Ranura_Tarjeta RanuraTerminal "Ranura de Terminal" HallServicios with irrelevante 'borde', adjetivos 'azul', descripcion "Pues... eso, la ranura donde se inserta la tarjeta. Tiene un borde azul.", antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (self hasnt general) { give self general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; ! Decoración de Hall Servicios Decorado_Espaciales EspacialesHallServicio "Espaciales" HallServicios with describir "Varios espaciales van de un lado a otro.", descripcion "Son tipos y tipas más bien fornidos, todos con cara desaseada y expresión cansina. La mayoría visten como yo. No se ven demasiado dispuestos a conversar." ; ! Pasillo Norte Servicios Localidad_Servicios ServiciosPasilloNorte "Pasillo Norte Servicios" with descripcion_larga "El pasillo norte del nivel de servicios. Por alguna razón más bien funcional, por el este se llega al comedor y justo al frente está el dispensario. Alguien podría pensar que es paranoia de mi parte, pero cada vez que paso por aquí no dejo de preguntarme si no habrá alguna forma perversa de causa y efecto en esta distribución...^ Al norte está la entrada a un ascensor.", descripcion_corta "El pasillo norte del nivel de servicios. El dispensario está al oeste y el comedor por el este.^ Al norte está la entrada a un ascensor.", antes [; Ir : ! El teclado se inhabilita al salir give TecladoAscServiciosPasilloNorte ~general; move PanelAscServiciosPasilloNorte to self; ], al_s HallServicios, al_e Comedor, al_o Dispensario, al_n AscensorServiciosPasilloNorte, adentro AscensorServiciosPasilloNorte ; ! Objetos de Servicios Pasillo Norte Objeto_Ascensor ObjAscensorServiciosPasilloNorte "ascensor industrial" ServiciosPasilloNorte; ! Decoración de Pasillo Norte Servicios Decorado_Espaciales EspacialesServiciosPasilloNorte "Espaciales" ServiciosPasilloNorte with describir "Hay algunos espaciales yendo por el comedor.", descripcion "La gente entra y sale del comedor sin demasiado entusiasmo... lo cual no es raro. Ya he comido antes en lugares como ese..." ; ! El Ascensor del Pasillo Norte Localidad_Ascensor AscensorServiciosPasilloNorte "Ascensor: Servicios Pasillo Norte" with descripcion_larga "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar. Por entre la rejilla se ve la roca del asteroide; han excavado el tiro directo en la roca, sin agregar revestimiento alguno. La compañía, economizando como sea y donde sea...^ En un costado del ascensor hay un teclado numérico, con una ranura para tarjetas de acceso.", descripcion_corta "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar.^ En un costado del ascensor hay un teclado numérico, con una ranura para tarjetas de acceso.", afuera ServiciosPasilloNorte, al_s ServiciosPasilloNorte, abajo "No hay un botón para bajar: sólo el teclado numérico.", arriba "No hay un botón para subir: sólo el teclado numérico."; ! Objetos del Ascensor Ranura_Tarjeta RanuraAscServiciosPasilloNorte "Ranura de Ascensor" AscensorServiciosPasilloNorte with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if (TecladoAscServiciosPasilloNorte hasnt general) { give TecladoAscServiciosPasilloNorte general; give TecladoAscensorDormitorios general; move PanelAscServiciosPasilloNorte to Limbo; move PanelAscensorDormitorios to Limbo; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo. Mientras, el panel que protegía las teclas se retira.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; Objeto_Escenario TecladoAscServiciosPasilloNorte "teclado numérico" AscensorServiciosPasilloNorte with nombre_m 'teclado', nombre_fp 'teclas', adjetivos 'numerico' 'numericas', descripcion [; print "Es un teclado numérico común"; if (self hasnt general) print ", con las teclas protegidas por un panel transparente"; "."; ], reaccionar_antes [; Teclear : if (self hasnt general) "Las teclas están protegidas por un panel transparente."; else { np = consultar_desde; switch (SiguientePalabra()) { '1175 ': PrintAutoPausa("Se escucha un BIP corto.^"); PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("...Bajamos...^"); PrintAutoPausa("...Nos movemos hacia un lado...^"); PrintAutoPausa("...El ascensor se detiene...^"); PrintAutoPausa("Las puertas se abren.^"); JugadorA(AscensorDormitorios); rtrue; default: "Nada ocurre..."; }; } ], has masculino escenario; Objeto_Escenario PanelAscServiciosPasilloNorte "panel transparente" AscensorServiciosPasilloNorte with nombre 'panel', adjetivos 'transparente', descripcion "Es un panel transparente que protege las teclas del teclado numérico.", antes [; Abrir, Empujar, Tocar, Tirar: "Por más que lo intento, no logro mover el panel."; ], has masculino escenario; ! Comedor Localidad_Servicios Comedor "Comedor" with descripcion_larga "Si la compañía trata a los espaciales como máquinas, el comedor sería indudablemente la estación de combustible... y resulta igual de acogedor, por lo demás: apenas hay unas cuantas mesas con banquetas adosadas y un dispensador de alimentos automático en la pared.^ Nada para alegrar la vista o descansar la mente; para eso está la sala de medios y aunque a la compañía no le molestaría juntar ambas cosas para economizar, las leyes son más bien estrictas en lo de manipular y servir alimentos...^ ...o lo que la compañía trata de hacer pasar por alimentos.^ Por el oeste se sale al pasillo norte.", descripcion_corta "El comedor no es más que unas cuantas mesas con banquetas adosadas y un dispensador de alimentos automático en la pared.^ Por el oeste se sale al pasillo norte.", antes [; Ir : if ( (uno == obj_o) || (uno == obj_afuera) ){ if (Dispensador has general){ give Dispensador ~general; PrintAutoPausa("Al salir, escucho unos pasos apresurados y luego gritos y ruidos de lucha.^"); PrintAutoPausa("Me doy vuelta, despacio...^"); PrintAutoPausa("¡Varios espaciales pelean entre sí para usar el dispensador de alimentos!^"); PrintAutoPausa("Creo que acabo de quemar algunos créditos...^"); } else if ( (Sopa in self) || (Sopa in BandejaDispensador) || (Sopa in BanquetasComedor) || (Sopa in MesasComedor) || (Spaghetti in self) || (Spaghetti in BandejaDispensador) || (Spaghetti in BanquetasComedor) || (Spaghetti in MesasComedor) || (Fruta in self) || (Fruta in BandejaDispensador) || (Fruta in BanquetasComedor) || (Fruta in MesasComedor) ) { give BandejaDispensador ~general; PrintAutoPausa("Al salir, escucho unos pasos apresurados y luego gritos y ruidos de lucha.^"); PrintAutoPausa("Me doy vuelta, despacio...^"); if ( (Sopa in self) || (Sopa in BandejaDispensador) || (Sopa in BanquetasComedor) || (Sopa in MesasComedor) ) { move Sopa to Limbo; PrintAutoPausa("¡Varios espaciales pelean entre sí mientras devoran la sopa que dejé!^"); } if ( (Spaghetti in self) || (Spaghetti in BandejaDispensador) || (Spaghetti in BanquetasComedor) || (Spaghetti in MesasComedor) ) { move Spaghetti to Limbo; PrintAutoPausa("¡Algunos espaciales casi se matan mientras devoran los spaghetti que dejé!^"); } if ( (Fruta in self) || (Fruta in BandejaDispensador) || (Fruta in BanquetasComedor) || (Fruta in MesasComedor) ) { move Fruta to Limbo; PrintAutoPausa("¡Unos espaciales son un enredo de golpes mientras devoran la fruta que dejé!^"); } PrintAutoPausa("Malo para mis finanzas aunque bueno para la moral de la base, creo...^"); } } ], afuera ServiciosPasilloNorte, al_o ServiciosPasilloNorte ; ! Objetos del Comedor Objeto_Escenario Dispensador "dispensador de alimentos" Comedor with nombre_m 'dispensador', adjetivos 'alimentos' 'automatico', descripcion "Es bastante más sofisticado que el de un OTV. Tiene una ranura para la tarjeta magnética, una pantalla sensible al tacto y una bandeja dispensadora abajo. En todo caso, si uno no tiene pasta... la máquina sólo sirve eso: una pasta nutritiva. El menjurje no es malo de sabor, pero, sabiendo qué usos alternativos tiene, ya no resulta tan apetitoso.^ Hay un aviso en un costado." has femenino; Objeto_Escenario BandejaDispensador "bandeja plástica del dispensador" Comedor with nombre 'bandeja', adjetivos 'plastica', capacidad 1, descripcion [; print "Es una bandeja plástica para recibir alimentos"; if (self hasnt general) " y no ofrece nada más que su presencia, de momento..."; else if (Spaghetti in self) ". Tiene una ración de spaghetti servida."; else if (Sopa in self) ". Tiene una ración de sopa servida."; else if (Fruta in self) ". Tiene una ración de ensalada de fruta servida."; else " y está ocupada."; ], !Manejar vasija con capacidad única reaccionar_antes [; Dejar, PonerSobre: if (otro==self){ if (self hasnt general) { move uno to self; give self general; "Dejas ", (el) uno, " en la bandeja."; } else "La bandeja está ocupada..."; } Coger: if ((uno in self)&& ((otro==0)||(otro==self))) give self ~general; ], has femenino escenario soporte; Objeto_Escenario PantallaDispensador "pantalla del dispensador" Comedor with nombre 'pantalla' 'LCD' 'seccion', descripcion "Es una pantalla LCD sensible al tacto, para escoger qué comer... o tragar, según el nivel de créditos del usuario. De hecho, se nota que una sección de la pantalla está bastante desgastada...", reaccionar_antes [; Teclear : print "Pulso mi selección en la pantalla.^"; if ( (Dispensador has general) && (BandejaDispensador hasnt general) ){ np = consultar_desde; switch (SiguientePalabra()) { 'SPAGHETTI': if (Spaghetti in Limbo) { give Dispensador ~general; move Spaghetti to BandejaDispensador; give BandejaDispensador general; "Se escucha un BIP y el dispensador sirve mis spaghettis.^ Varios espaciales se dan vuelta para mirarme, con diversas expresiones: envidia, incredulidad... y avidez. Mejor me como esto en otro sitio."; } else "Se escucha un tono bajo... y no pasa nada."; 'SOPA': if (Sopa in Limbo) { give Dispensador ~general; move Sopa to BandejaDispensador; give BandejaDispensador general; "Se escucha un BIP y el dispensador sirve mi sopa.^ Varios espaciales se dan vuelta para mirarme, con diversas expresiones: envidia, incredulidad... y avidez. Mejor me como esto en otro sitio."; } else "Se escucha un tono bajo... y no pasa nada."; 'ENSALADA': if (Fruta in Limbo) { give Dispensador ~general; move Fruta to BandejaDispensador; give BandejaDispensador general; "Se escucha un BIP y el dispensador sirve mi ensalada.^ Varios espaciales se dan vuelta para mirarme, con diversas expresiones: envidia, incredulidad... y avidez. Mejor me como esto en otro sitio."; } else "Se escucha un tono bajo... y no pasa nada."; default: "Se escucha un tono bajo... y no pasa nada."; } } else "Se escucha un tono bajo... y no pasa nada."; ], antes [; Leer : if (Dispensador hasnt general) { print "Se lee un texto en letras amarillas brillantes:^^"; style bold; print "INSERTE SU TARJETA^ Y SELECCIONE OPCION"; style roman; rtrue; } else { print "Se lee un texto en letras verdes brillantes:^^"; style bold; print "> SPAGHETTI CON SALSA.^ > SOPA DE VERDURAS.^ > ENSALADA DE FRUTAS.^^"; style roman; "No me lo puedo creer...^ ¡Ese trabajillo en el viaje se está pagando, sí señor!"; } ] has femenino legible; ! Clase para Comida Class Comida_Dispensador class object with descripcion "La ración viene servida en un envase comestible, sellable y que se diseñó para consumir sin cubiertos. Estos envases, de sabor, son más bien sosos, pero la comida...^ Las texturas, el olor, la temperatura...^ ¡¡Es verdadera comida!!", antes [; Dar : if ( (otro == EspacialEquipamiento) && (EspacialEquipamiento has visitado) && (RanuraEquipamiento has general) ) { move self to Limbo; move TrajeMinero to Jugador; move Grampones to Jugador; move EspacialEquipamiento to Limbo; "El tipo acepta el plato sin decir palabra e inmediatamente saca de detrás del mesón un traje de minero y unos grampones.^ En completo silencio, me los entrega, coge su comida y se pierde entre los estantes."; } else if ( (otro == TecnicaSistemas) || (otro == TecnicaSistemasPasillo) ) "Me parece que esta chica se merece algo más... sustancioso."; else "No pienso desperdiciar buena comida de esta manera..."; Oler : "El aroma es estupendo... sensual.^^ ¡Ah!^^ Se me hace agua la boca."; Probar : "El sabor es... una explosión de placer en mi lengua.^^ Mmmmmmhhh...^^ ...Si fuera una tía en vez de comida..."; ], despues [; Comer : move self to Limbo; "Lo disfruto lentamente... y es el cielo.^ La próxima vez, yo mismo saboteo el OTV antes de salir..."; ] has comestible; Comida_Dispensador Spaghetti "ración de spaghetti" Limbo with describir "Hay una ración de spaghetti servida del dispensador.", nombre_f 'comida' 'racion', nombre_m 'spaghetti' 'plato' has femenino; Comida_Dispensador Sopa "ración de sopa" Limbo with describir "Hay una ración de sopa servida del dispensador.", nombre_f 'comida' 'racion' 'sopa', nombre_m 'plato' has femenino; Comida_Dispensador Fruta "ración de ensalada de frutas" Limbo with describir "Hay una ración de ensalada de frutas servida del dispensador.", nombre_f 'comida' 'racion' 'ensalada', nombre_m 'plato', nombre_fp 'frutas' has femenino; Ranura_Tarjeta RanuraDispensador "Ranura del Dispensador" Comedor with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if ( (Dispensador hasnt general) && (BandejaDispensador hasnt general) ){ give Dispensador general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; Objeto_Escenario AvisoDispensador "aviso" Comedor with nombre_m 'aviso' 'algo' 'cartel' 'letrero', nombre_f 'placa', nombre_fp 'letras', adjetivos 'plastica' 'pegada' 'grandes', descripcion "Es una placa plástica pegada a un costado del dispensador. Tiene algo escrito en letras grandes.", antes[; Coger : "Corrijo; más que pegado, parece estar fundido con el dispensador. No hay caso."; Consultar, Leer: style bold; print "ATENCION:^"; style roman; print "ESTE DISPOSITIVO PROPORCIONA LIQUIDO Y ALIMENTO SOLIDO PARA CONSUMO HUMANO.^^"; style bold; print "PARA USAR ESTE DISPOSITIVO:^"; style roman; print "INSERTE SU TARJETA DE IDENTIFICACION^ SELECCIONE UNA RACION DE BEBIDA O COMIDA^ CONSUMALA^^"; style bold; print "ESTE DISPOSITIVO NO SE ACTIVARA SI^ NO SE HA CONSUMIDO LA ULTIMA RACION SERVIDA^^ REPORTE A LA COMPAÑIA SU USO INADECUADO^^ LA COMPAÑIA NO SE HACE RESPONSABLE POR DAÑOS CAUSADOS AL USUARIO SI NO SE SIGUEN ESTAS INDICACIONES."; style roman; if (self hasnt visitado) { give self visitado; "^^(suspiro)^^ Como en el OTV, un aparato amigable con el usuario..."; } rtrue; ], has masculino legible; Objeto_Escenario BanquetasComedor "banqueta" Comedor with nombre_f 'banqueta', nombre_fp 'banquetas', adjetivos 'adosada' 'adosadas', descripcion "Las banquetas están adosadas a las mesas y no tienen respaldo, por lo que los colegas comen más o menos encorvados sobre las mesas.", antes [; Tocar : "Son duras como una loseta del piso. Pobre del que se siente..."; ], despues [; Meterse : "Busco algún espacio disponible en las banquetas. Los colegas gruñen un poco pero me dejan sentarme.^ No estoy cómodo... y ellos tampoco."; Salirse : "Me levanto con cuidado, tratando de no incomodar al resto... y no hay caso.^ Estas banquetas fueron diseñados para que fuera jodido sentarse, y pararse no es más fácil."; ], has femenino soporte entrable; Objeto_Escenario MesasComedor "mesa" Comedor with nombre_f 'mesa', nombre_fp 'mesas', adjetivos 'plasticas' 'empotradas', descripcion "Son mesas plásticas, de superficie ligeramente rugosa y de color ~blanco- corporativo~.^ Están empotradas al suelo y resulta difícil moverse entre ellas sin molestar a los que están sentados.", antes [; Tocar : "Son duras como una loseta del piso, pero al menos son estables."; ], despues[; Meterse : "Me subo a una de las mesas. Los colegas me miran raro, pero me dejan hacer."; Salirse : "Me bajo con cuidado, tratando de no incomodar al resto."; ] has femenino soporte entrable; ! Decoración de Comedor Decorado_Espaciales EspacialesComedor "Espaciales" Comedor with describir "Hay algunos espaciales ~echando combustible~.", descripcion "Se los ve ocupados tragando lo que la compañía dispensa a sus empleados para que sigan funcionando. Mejor no interrumpirles." ; ! Dispensario Localidad_Servicios Dispensario "Dispensario" with irrelevante 'blancos' 'impecables' 'consultas' 'examenes' 'plastico', descripcion_larga "Al igual que el reactor de fusión de la base, el dispensario es de esos sitios que mientras menos frecuente uno, mejor está.^ Las paredes y muebles son algo más blancos e impecables (la ley) pero hay un desagradable olor a detergentes industriales (la compañía) que te hace pensar en esterilidad más que en salud.^ Si lo pintaran de un color más oscuro, igualmente serviría de morgue.^ Por muebles, hay un mesón con sus sillas para consultas y una camilla para exámenes. Al fondo veo una puerta vidriada.^ Por el este se sale al pasillo norte.", descripcion_corta "Paredes y muebles algo más blancos e impecables y un olor a detergentes industriales... el dispensario es de esos sitios en que, cuánto menos tiempo se esté, mejor. Por muebles, un mesón para consultas y una camilla para exámenes. Al fondo veo una puerta vidriada.^ Por el este se sale al pasillo norte.", antes [; Dejar, PonerSobre : "El técnico me devuelve mis cosas, diciendo ~Lo siento, no está permitido dejar aquí objetos personales.~"; Oler : if (uno==0) { "Huele a detergentes industriales...^ Un encanto para los sentidos..."; }; ], afuera ServiciosPasilloNorte, al_e ServiciosPasilloNorte ; ! Objetos del Dispensario Object FrascoMuestras "frasco de muestras" Limbo with nombre 'frasco' 'tarro', adjetivos 'muestras' 'transparente', descripcion [; print "Es un frasco transparente de muestras"; if (self hasnt visitado){ give self visitado; "; se abre y cierra con facilidad, pero una vez cerrado queda al vacío."; } else if (self has abierto) print ". Está abierto"; else print ". Está cerrado"; if (FlorPequena in self) print " con la flor pequeña dentro"; "."; ], antes [; Abrir : if (localizacion ~= FinGaleriaNueva) "Es preferible mantenerlo estéril y no abrirlo hasta que haga falta."; Recibir : if (uno ~= FlorPequena) "Mejor no meter tonterías aquí dentro y lo dejo para cuando haga falta."; ], despues [; Abrir : "Abro cuidadosamente el frasco."; Recibir : "Meto con cuidado la flor en el frasco."; Cerrar : if (FlorPequena in self) { ! Fin ! Parar ambientador universal ! PararDaemon(ambientador_universal); Fin1.proyeccion(); Fin2.proyeccion(); Fin3.proyeccion(); banderafin = 2; rtrue; } ], has masculino recipiente abrible ~abierto; PSI TecnicoMedico "Técnico Médico" Dispensario with nombre 'tecnico' 'espacial', adjetivos 'medico' 'delgado' 'blanco', describir "Hay un técnico vestido de blanco sentado tras el mesón.", descripcion "Es un espacial algo delgado (rarillo, ¿eh?) y con una cara de interés más falsa que un voucher de vacaciones pagadas por la compañía.^ Está sentado con algo de desgano.", antes [; Besar, Probar, Follar : "No es de mi gusto... y en una de esas, se desarma, je..."; Hablar : ! El jugador no ha hablado con el Admninistrador de la Base if (Ejecutivo hasnt visitado) { if (self hasnt visitado) { give self visitado; BienvenidaTecnicoMedico.proyeccion(); rtrue; } else "No me dejar hablar media sílaba y me suelta un ~Tío, no molestes más o puede que te encuentres con un chequeo médico sorpresa uno de estos días.~"; } else { if (self hasnt visitado) { give self visitado; NegociacionTecnicoMedico.proyeccion(); <>; } else if (self hasnt general) { "Voy a hablarme y me interrumpe con ~Macho, o me traes esas piedras o no hay trato.~"; } else { print "Antes de que diga media palabra, me larga un ~Comida hecha, amistad desecha. Espero que te... ejem... vaya bien, tío, pero aquí es mejor que no vuelvas.~^^ Ante tamaña amabilidad, decido irme.^"; <>; } } ] has masculino; Objeto_Escenario SillasDispensario "silla del dispensario" Dispensario with nombre_m 'acolchado', nombre_f 'silla', nombre_fp 'sillas', adjetivos 'acolchadas' 'fundidas' 'empotradas', descripcion "Las sillas están fundidas al suelo y son ligeramente acolchadas. No parecen demasiado cómodas... una de las sutiles formas de la compañía de decirte ~piérdete de aquí, pero ya~.", antes [; Tocar : "El acolchado apenas sede a la presión. Creo que el suelo estaría más blando."; ], despues [; Meterse : "Vaya. Son levemente incómodas.^ Qué sorpresa..."; ], has femenino soporte entrable; Objeto_Escenario MesonDispensario "mesón" Dispensario with nombre 'meson', nombre_f 'mesa', descripcion "Es de bordes curvos y superficie lisa, todo en plástico blanco (por supuesto). Hay un par de sillas empotradas al suelo a ambos lados.", antes [; Tocar : "Es duro como una loseta del piso, pero al menos es estable."; Meterse : "Voy a subirme al mesón, pero el técnico me ataja con un ~Por favor, para eso están las sillas...~"; ] has masculino soporte entrable; Objeto_Escenario CamillaDispensario "camilla" Dispensario with nombre 'camilla' 'cama', descripcion "Es una camilla para exámenes médicos. Me recuerda la mesa del comedor del OTV...", antes [; Tocar : "Es bastante blanda. Ha de ser cómoda."; Meterse : "Voy a tenderme en la camilla, pero el técnico me ataja con un ~Por favor, es sólo para pacientes.~"; ] has femenino soporte entrable; ! Decoración de Dispensario Decorado_Ampliado DecoradoDispensario Dispensario with describir 'muebles' "Una camilla, un mesón y un par de sillas." G_MASCULINO + G_PLURAL 'puerta' "Es una puerta vidriada, de un material borroso. Dice SALA DE OPERACIONES.^ Considerando que el único personal ~médico~ en la base es el técnico frente a mi, lo mejor es no tener que saber jamás qué hay detrás de esa puerta." G_FEMENINO ; ! Pasillo Oeste Servicios Localidad_Servicios ServiciosPasilloOeste "Pasillo Oeste Servicios" with descripcion_larga "El pasillo oeste del nivel de servicios permite acceder a las instalaciones de esparcimiento de la compañía... lo que no es mucho decir.^ Si bien debe proporcionarlas por ley, en general la inversión para equipamiento de la compañía se gasta (por orden) en temas de producción, energía, integridad estructural, comunicaciones, informática, salud... y si queda algo, entretención.^ Con decirles que los espaciales, hartos de trabajo y agotados, solemos ser más entretenidos que cualquier cosa que puedan encontrar por aquí.^ Al sur está la sala de medios y al norte el gimnasio.", descripcion_corta "El pasillo oeste del nivel de servicios. Al sur está la sala de medios y al norte el gimnasio.", al_n Gimnasio, al_s SalaMedios, al_e HallServicios ; ! Decoración de Pasillo Oeste Servicios Decorado_Espaciales EspacialesServiciosPasilloOeste "Espaciales" ServiciosPasilloOeste with describir "Hay algunos espaciales yendo por el gimnasio y la sala de medios.", descripcion "La gente entra y sale de los servicios de esparcimiento con una cara de profundo aburrimiento... y es entendible. Es siempre más de lo mismo..." ; ! Gimnasio Localidad_Servicios Gimnasio "Gimnasio" with descripcion_larga "El gimnasio es ligeramente más amplio que otras salas del nivel: digamos, como el estanco de la base. Fuera de las máquinas para ejercicios y los espaciales que las usan, el lugar está razonablemente ordenado y limpio (sí, las máquinas están sucias y los espaciales somos un desastre).^ En la Tierra siempre se ha dicho que el deporte es salud y no sé que chorradas más, pero ninguno de esos sesudos intelectuales ha visto lo que llega a ocurrir por acá: es raro, pero a veces te toca ver a algún obsesivo que se le pasa la mano, para terminar en el dispensario (pobre diablo).^ Por el sur se sale al pasillo oeste.", descripcion_corta "El gimnasio es ligeramente más amplio que otras salas del nivel. Está lleno de máquinas para ejercicio, tanto o más sucias que sus usuarios.^ Por el sur se sale al pasillo oeste.", afuera ServiciosPasilloOeste, al_s ServiciosPasilloOeste ; ! Decoración de Gimnasio Decorado_Espaciales EspacialesGimnasio "Espaciales" Gimnasio with describir "Algunos espaciales están tratando de no mantenerse demasiado en forma.", descripcion "Cada vez que la compañía trata de venderle a un incauto lo saludable que es el trabajo en el espacio, te muestran a un espacial haciendo ejercicios en un gimnasio como este.^ La verdad es que usamos las máquinas para no quedar deformes: el trabajo de un espacial requiere esfuerzos... no muy ~equilibrados~, podríamos decir.^ Para las tías, esto no es de risa... si les gusta parecer mujeres y no solamente serlo, si me entendéis." ; Decorado_Ampliado DecoradoGimnasio Gimnasio with antes [; Meterse : "Ahora mismo, no tengo ganas de hacer ejercicio."; ], describir 'maquinas' "Un montón de implementos deportivos, algunos mecánicos, otros eléctricos y algunos mixtos. Todos se ve que tienen mucho uso y mantención constante... como todos nosotros, por lo demás." G_FEMENINO + G_PLURAL ; ! Sala de Medios Localidad_Servicios SalaMedios "Sala de Medios" with irrelevante 'literatura' 'musica' 'peliculas' '2D' 'juegos' 'ficcion' 'interactiva' 'aventuras' 'antiguedades', descripcion_larga "La sala de medios representa la (para la compañía) detestable idea de ~tiempo libre~. Imagínense: espaciales haciendo cosas no productivas por espacios de tiempo superiores a los requeridos para respirar.^ La sola idea pone nerviosos a los ejecutivos de la compañía, así que el equipamiento está a la altura: una consola de medios más antigua que los pernos de la base y una estación de realidad virtual básica. Aparte, algunas tumbonas, la mayoría ocupadas.^ Y un ambiente de velorio, como le gusta a los ejecutivos.^ Por el norte se sale al pasillo oeste.", descripcion_corta "La sala de medios representa la (para la compañía) detestable idea de ~tiempo libre~ y está equipada según eso: una consola de medios antigua y una estación de realidad virtual básica. Aparte, algunas tumbonas, la mayoría ocupadas.^ Un ambiente de velorio, como le gusta a los ejecutivos.^ Por el norte se sale al pasillo oeste.", ! afuera ServiciosPasilloOeste, al_n ServiciosPasilloOeste ; ! Objetos de Sala de Medios Objeto_Escenario EstacionRV "Estación de Realidad Virtual" SalaMedios with nombre_f 'estacion' 'realidad' 'virtual' 'rv' 'plaza' 'cubierta', nombre_m 'sillon', nombre_fp 'plazas' 'cubiertas', nombre_mp 'sillones', descripcion [; if (jugador in self) { print "Estoy sentado en una de las plazas"; if (self has abierto) print ", con la cubierta abierta"; ". Puedo ver a mano una ranura para tarjetas y un aviso cerca."; } else "Son varios sillones de cuerpo entero, muy parecidos a las vainas criogénicas, pero con cubiertas opacas. Hay 10 plazas, casi permanentemente ocupadas (salvo los turnos de trabajo, claro). Ahora mismo, hay solo una disponible.^ La compañía vigila y se asegura de que no abusemos de estas cosas, cerrándonos el acceso en forma individual, si es necesario.^ La verdad es que, aunque viejos, algunos de los programas RV que suelen intercambiarse los espaciales son, literalmente, de vicio..."; ], descripcion_dentro [; print "Estoy sentado en una de las plazas"; if (self has abierto) print ", con la cubierta abierta"; ". Puedo ver a mano una ranura para tarjetas y un aviso cerca."; ], reaccionar_antes[; Salir, Salirse: if (jugador in self) { if (self hasnt abierta) "Está cerrada..."; else { move RanuraEstacionRV to Limbo; move AvisoEstacionRV to Limbo; move jugador to SalaMedios; print "Con un quejido, me levanto."; if (RanuraEstacionRV has general) print "^Estoy molido..."; give RanuraEstacionRV ~general; print "^"; rtrue; } } else if (jugador in TumbonasSalaMedios) { move jugador to SalaMedios; "Me levanto con cuidado.^ Lástima... con lo bien que se estaba..."; } else "¿De dónde?..."; ], antes [; Cerrar : if (self has abierta){ if (jugador in self) rfalse; else "Lo intento, pero no hay caso: solo se cierra por dentro..."; } else "Ya esta cerrada..."; Abrir : if (self has abierta) "Ya está abierta..."; else rfalse; Ir: if (uno==obj_afuera) <>; ], despues [; Entrar, Meterse: move RanuraEstacionRV to self; move AvisoEstacionRV to self; "Me tiendo con cuidado. Es tan cómoda..."; Abrir: "La cubierta se abre silenciosamente."; Cerrar: "Con un -click- la cubierta se cierra suavemente."; ], has luz femenino entrable soporte recipiente abrible abierto ~transparente; Objeto_Escenario AvisoEstacionRV "aviso" Limbo with nombre_m 'aviso' 'algo' 'cartel' 'letrero', nombre_f 'placa', nombre_fp 'letras', adjetivos 'plastica' 'pegada' 'grandes', descripcion "Es una placa plástica pegada en un costado interno de la cubierta. Tiene algo escrito en letras grandes.", antes[; Coger : "Ni aunque me quede sin uñas lo saco. Esta realmente fijo. No hay caso."; Consultar, Leer: style bold; print "ATENCION:^"; style roman; print "ESTE DISPOSITIVO DEBE SER USADO SOLO PARA FINES DE ACTIVIDAD RV:^^ PROGRAMAS DE ENTRETENIMIENTO^ ASIMILACIÓN DE ENTRENAMIENTO^^"; style bold; print "NO USAR ESTE DISPOSITIVO COMO:^"; style roman; print "LITERA^ REPOSERA^ HAMACA^ CAMA^ O PARA OTRAS ACTIVIDADES AJENAS A LA RV.^^"; style bold; print "EL SISTEMA DE ESTE DISPOSITIVO NO SE ACTIVARA SI:^"; style roman; print "LA CUBIERTA ESTA ABIERTA^ SU TARJETA NO TIENE DATOS VALIDOS^^"; style bold; print "REPORTE A LA COMPAÑIA SU USO INADECUADO^^ LA COMPAÑIA NO SE HACE RESPONSABLE POR DAÑOS CAUSADOS AL USUARIO SI NO SE SIGUEN ESTAS INDICACIONES."; style roman; if (self hasnt visitado) { give self visitado; "^^(suspiro)^^ La compañía, como un perro mojado, esparciendo alegría por todos lados..."; } rtrue; ], has masculino legible; Ranura_Tarjeta RanuraEstacionRV "Ranura de Estación RV" Limbo with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (EstacionRV hasnt abierta) { !give self general; PrintAutoPausa("Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^^"); PrintAutoPausa("Siento un ligero pinchazo en la nuca... y todo se va a negro..."); ZIPI_RunMenuT(ZIPI_Menu2); "^^Diablos. Eso fue demasiado rápido..."; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; ! Decoración de SalaMedios Decorado_Espaciales EspacialesSalaMedios "Espaciales" SalaMedios with describir "Hay unos cuantos espaciales tratando de aniquilar su tiempo libre...", descripcion "La gente usa las instalaciones con el mismo entusiasmo con que uno se corta las uñas... y es igual de agradable de ver, ya que estamos." ; Objeto_Escenario TumbonasSalaMedios "tumbona" SalaMedios with nombre_m 'acolchado', nombre_f 'tumbona', nombre_fp 'tumbonas', descripcion "Unos divanes para descansar. Alguno espaciales lo están intentando...", antes [; Tocar : "El acolchado sede suavemente a la presión. No ha de ser malo para tenderse."; ], despues [; Meterse : "Me recuesto en una de las tumbonas disponibles...^ ...y es comodísima.^ La de rato que me gustaría estar aquí..."; ], has femenino soporte entrable; Decorado_Ampliado DecoradoSalaMedios SalaMedios with antes [; Coger, Meterse : "No estoy de humor para este tipo de trastos antiguos. Prefiero un poco de RV..."; ], describir 'consola' "Está pensada para ser usada por 10 personas a la vez. Tiene pantallas, teclados, audífonos, puertos para descarga de datos... hasta impresora, si alguien quiere leer ~a la antigua~.^ Los materiales disponibles, aunque anticuados, tienen una selección amplia (traté de mirar algo... alguna vez). Sin embargo, no parece que tenga demasiado uso.^ La gente sana prefiere usar su tiempo libre de otras maneras... je, je, je..." G_FEMENINO 'pantallas' "Son razonablemente nítidas y grandes. Tienen un buen nivel de luminosidad... y son más antiguas que los materiales que muestran." G_FEMENINO + G_PLURAL 'teclados' "Teclados alfanuméricos, para usarlos como complementos de las pantallas." G_MASCULINO + G_PLURAL 'audifonos' "Son enormes, acolchados y aíslan completamente los oídos del usuario." G_MASCULINO + G_PLURAL 'puertos' "Son elementos de entrada y salida, por si uno tiene una PDA y quiere descargar o cargar contenidos." G_MASCULINO + G_PLURAL 'impresora' "Esta rémora (tecnológica y ecológica) está para los dinosaurios que aun prefieren una ~copia dura~ a la hora de revisar material." G_FEMENINO 'materiales' "Hay todo tipo de cosas audiovisuales: literatura, música, viejas películas 2D... hasta algunos de esos antiguos juegos para machacar el teclado, incluyendo ejemplos de una extraña mezcla de todo ello, llamada ficción interactiva o aventuras. Ya ven: auténticas antigüedades." G_MASCULINO + G_PLURAL ; ! Pasillo Este Servicios Localidad_Servicios ServiciosPasilloEste "Pasillo Este Servicios" with descripcion "El pasillo este del nivel de servicios. No hay nadie a la vista.^ En la pared puedo ver un aviso.^ El pasillo continúa hacia el oeste, mientras que al este se entra a un ascensor.", antes [; Ir: give AscensorServiciosPasilloEsteSube ~general; give AscensorServiciosPasilloEsteBaja ~general; ], al_o HallServicios, al_e AscensorServiciosPasilloEste, adentro AscensorServiciosPasilloEste ; ! Objetos de Servicios Pasillo Norte Objeto_Ascensor ObjAscensorServiciosPasilloEste "ascensor industrial" ServiciosPasilloEste; ! Decoración del Pasillo Este Servicios Decorado_Ampliado DecoradoServiciosPasilloEste ServiciosPasilloEste with describir 'diagrama' DescripcionAvisoPasilloEste G_MASCULINO 'aviso' DescripcionAvisoPasilloEste G_MASCULINO 'cartel' DescripcionAvisoPasilloEste G_MASCULINO 'letrero' DescripcionAvisoPasilloEste G_MASCULINO ; [DescripcionAvisoPasilloEste; return "Es un diagrama impreso con la organización de este nivel:^ - Desde el pasillo este se llega a un Hall de distribución al oeste.^ - El ascensor permite subir al área administrativa y bajar a la zona de operaciones. (indica ~AUTORIZACION REQUERIDA~)^ - En el pasillo sur un ascensor lleva a Control de Ingreso. (indica ~AUTORIZACION REQUERIDA~)^ - En el pasillo norte está el dispensario y el comedor, así como el ascensor de acceso a los dormitorios.^ - En el pasillo oeste hay una sala de medios y un gimnasio."; ]; ! Ascensor Servicios Pasillo Este Localidad_Ascensor AscensorServiciosPasilloEste "Ascensor: Servicios Pasillo Este" with antes [; Ir : if (uno == obj_arriba) { if (AscensorServiciosPasilloEsteSube hasnt general) <>; else { PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Subimos...^"); PrintAutoPausa("Las puertas se abren.^"); give AscensorAccesoAdministracion visitado; } } else if (uno == obj_abajo) { if (AscensorServiciosPasilloEsteBaja hasnt general) <>; else { PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Bajamos...^"); PrintAutoPausa("Las puertas se abren.^"); give AscensorAccesoOperaciones visitado; } } ], afuera ServiciosPasilloEste, al_o ServiciosPasilloEste, arriba AscensorAccesoAdministracion, abajo AscensorAccesoOperaciones; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorServiciosPasilloEsteBaja "Botón Baja" AscensorServiciosPasilloEste with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Boton_Ascensor_Sube AscensorServiciosPasilloEsteSube "Botón Sube" AscensorServiciosPasilloEste with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Ranura_Tarjeta RanuraAscServiciosPasilloEste "Ranura de Ascensor" AscensorServiciosPasilloEste with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if ( (AscensorServiciosPasilloEsteSube hasnt general) && (AscensorServiciosPasilloEsteBaja hasnt general) ) { give AscensorServiciosPasilloEsteSube general; give AscensorAccesoAdministracionBaja general; if (Ejecutivo has visitado) { give AscensorServiciosPasilloEsteBaja general; give AscensorAccesoOperacionesSube general; } print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; ! ZONA DE DORMITORIOS !Clase para localidades de Zona de Servicios Class Localidad_Dormitorios class Habitacion with antes [; Escuchar : if (uno==0) "Ni un ruido. Nada...^ Esta zona, al menos, está acústicamente bien aislada."; Oler : if (uno==0) { "Huele a oxígeno y plástico.^ El arrullo tecnológico de la compañía..."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la zona de dormitorios de la base están hecho de losetas plásticas."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración de la Zona de Dormitorios Decorado_Ampliado DecoradoZonaDormitorios Localidad_Dormitorios with esta_en [; if (localizacion ofclass Localidad_Dormitorios) return true; else return false; ], describir 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO 'pared' DescripcionParedesDormitorios G_FEMENINO 'paredes' DescripcionParedesDormitorios G_FEMENINO + G_PLURAL 'muros' DescripcionParedesDormitorios G_MASCULINO + G_PLURAL 'muro' DescripcionParedesDormitorios G_MASCULINO 'luz' "Muy tenue y suave.^ Hasta me da un poco de sueño..." G_FEMENINO 'rendijas' "Son unos surcos oscuros y porosos que corren entre las losetas" G_FEMENINO + G_PLURAL 'losetas' "Son unos cuadrados plásticos con textura antideslizante. La luz no permite saber de que color eran originalmente, pero el uso y el tránsito constante de mis colegas espaciales los han dejado muy desgastados: de la textura antideslizante, apenas queda nada. Supongo que la compañía las reemplazará después del primer accidente.^ Antes ¿para qué?..." G_FEMENINO + G_PLURAL ; [DescripcionParedesDormitorios; return "Las paredes y el techo de la zona de dormitorios de la base están hechas del mismo material del suelo...^^ ...las mismas losetas, con las mismas rendijas, todo con urgente necesidad de reemplazo...^^ ...porque a la compañía, aparte de proporcionarnos un lugar donde caer medio muertos de sueño, no tiene interés en hacerlo un lugar grato."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadDormitorios "localidad de dormitorios" with nombre 'acceso' 'dormitorio' 'pasillo', adjetivos 'dormitorios', descripcion [; np = 2; switch (SiguientePalabra()) { 'pasillo' : if (localizacion == AccesoDormitorios) {;<>;} else "No veo eso que dices."; 'acceso' : if (localizacion == AccesoDormitorios) {;<>;} else "No veo eso que dices."; 'dormitorio' : if (localizacion == Dormitorio) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], antes [; Frotar : np = 2; if (SiguientePalabra() == 'dormitorio') { if (Dormitorio hasnt general) "Una cosa a la vez, espacial..."; else "¿Para qué? Lo dejé impecable..."; } ], esta_en [; if (localizacion ofclass Localidad_Dormitorios) return true; else return false; ] has masculino; ! El Ascensor de los Dormitorios Localidad_Ascensor AscensorDormitorios "Ascensor: Dormitorios" with descripcion_larga "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar. Por entre la rejilla se ve la roca del asteroide; han excavado el tiro directo en la roca, sin agregar revestimiento alguno. La compañía, economizando como sea y donde sea...^ En un costado del ascensor hay un teclado numérico, con una ranura para tarjetas de acceso.", descripcion_corta "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar.^ En un costado del ascensor hay un teclado numérico, con una ranura para tarjetas de acceso.", abajo "No hay un botón para bajar: sólo el teclado numérico.", arriba "No hay un botón para subir: sólo el teclado numérico.", afuera AccesoDormitorios, al_n AccesoDormitorios; ! Objetos del Ascensor Ranura_Tarjeta RanuraAscensorDormitorios "Ranura de Ascensor" AscensorDormitorios with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if (TecladoAscensorDormitorios hasnt general) { give TecladoAscServiciosPasilloNorte general; give TecladoAscensorDormitorios general; move PanelAscServiciosPasilloNorte to Limbo; move PanelAscensorDormitorios to Limbo; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo. Mientras, el panel que protegía las teclas se retira.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; Objeto_Escenario TecladoAscensorDormitorios "teclado numérico" AscensorDormitorios with nombre_m 'teclado', nombre_fp 'teclas', adjetivos 'numerico' 'numericas', descripcion [; print "Es un teclado numérico común"; if (self hasnt general) print ", con las teclas protegidas por un panel transparente"; "."; ], reaccionar_antes [; Teclear : if (self hasnt general) "Las teclas están protegidas por un panel transparente."; else { np = consultar_desde; switch (SiguientePalabra()) { '1175': PrintAutoPausa("Se escucha un BIP corto.^"); PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("...Nos movemos hacia un lado...^"); PrintAutoPausa("...Subimos...^"); PrintAutoPausa("...El ascensor se detiene...^"); PrintAutoPausa("Las puertas se abren.^"); JugadorA(AscensorServiciosPasilloNorte); rtrue; default: "Nada ocurre..."; }; } ], has masculino escenario; Objeto_Escenario PanelAscensorDormitorios "panel transparente" AscensorDormitorios with nombre 'panel', adjetivos 'transparente', descripcion "Es un panel transparente que protege las teclas del teclado numérico.", antes [; Abrir, Empujar, Tocar, Tirar: "Por más que lo intento, no logro mover el panel."; ], has masculino escenario; ! Acceso a Dormitorios Localidad_Dormitorios AccesoDormitorios "Acceso a Dormitorios" with descripcion "El acceso a este nivel de los dormitorios es un pasillo oscuro, apenas iluminado.^ A los costados están las puertas de entrada varios dormitorios. Al norte, al final del pasillo, también hay una puerta. Se puede ver la entrada del ascensor al sur.", despues [; Ir : ! El teclado se inhabilita al salir give TecladoAscServiciosPasilloNorte ~general; give TecladoAscensorDormitorios ~general; move PanelAscServiciosPasilloNorte to self; move PanelAscensorDormitorios to self; ! La puerta del dormitorio se cierra al salir de esta habitacion give CompuertaDormitorio ~abierta; ], al_n CompuertaDormitorio, al_s AscensorDormitorios, adentro AscensorDormitorios, al_e "No puedes pasar a través de las compuertas de los dormitorios.", al_o "No puedes pasar a través de las compuertas de los dormitorios." ; ! Objetos del Acceso a Dormitorios Objeto_Ascensor ObjAscensorDormitorios "ascensor industrial" AccesoDormitorios; Conexion CompuertaDormitorio "compuerta de acceso al dormitorio" with nombre 'puerta' 'compuerta', adjetivos 'acceso' 'dormitorio' 'redonda', descripcion [; if (self has abierta) "La compuerta se ha deslizado por el muro y no está visible."; else { print "La compuerta es de forma redonda y bastante grande."; if (localizacion == AccesoDormitorios) " A un costado tiene un teclado numérico y una ranura para tarjetas de acceso."; else rtrue; } ], antes [; Tocar, Tirar, Empujar, Abrir : if (self hasnt abierta) { if (localizacion == AccesoDormitorios) "Tiro, empujo, muevo... No hay forma de hacerlo: no se abre."; else { give self abierta; "Al tocarla, la puerta se abre, deslizándose por el muro."; } } else "Ya está abierta."; Cerrar : "Ya está cerrada."; ], has femenino escenario abrible ~abierto; Ranura_Tarjeta RanuraAccesoDormitorios "Ranura de Compuerta" AccesoDormitorios with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if (TecladoAccesoDormitorios hasnt general) { give TecladoAccesoDormitorios general; move PanelAccesoDormitorios to Limbo; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo. Mientras, el panel que protegía las teclas se retira.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; Objeto_Escenario TecladoAccesoDormitorios "teclado numérico" AccesoDormitorios with nombre_m 'teclado', nombre_fp 'teclas', adjetivos 'numerico' 'numericas', descripcion [; print "Es un teclado numérico común"; if (self hasnt general) print ", con las teclas protegidas por un panel transparente"; "."; ], reaccionar_antes [; Teclear : if (self hasnt general) "Las teclas están protegidas por un panel transparente."; else { np = consultar_desde; switch (SiguientePalabra()) { '326': give CompuertaDormitorio abierta; "Se escucha un BIP corto y la compuerta se abre, deslizándose por el muro."; default: "Nada ocurre..."; }; } ], has masculino escenario; Objeto_Escenario PanelAccesoDormitorios "panel transparente" AccesoDormitorios with nombre 'panel', adjetivos 'transparente', descripcion "Es un panel transparente que protege las teclas del teclado numérico.", antes [; Abrir, Empujar, Tocar, Tirar: "Por más que lo intento, no logro mover el panel."; ], has masculino escenario; ! Decoración de Acceso a Dormitorios Decorado_Ampliado DecoradoAccesoDormitorios AccesoDormitorios with describir 'teclados' "Son teclados numéricos comunes, con las teclas protegidas por un panel transparente." G_MASCULINO + G_PLURAL 'compuertas' DescripcionCompuertasDormitorios G_FEMENINO + G_PLURAL 'puertas' DescripcionCompuertasDormitorios G_FEMENINO + G_PLURAL ; [DescripcionCompuertasDormitorios; return "Las compuertas son de forma redonda y bastante grande. A un costado tienen cada una un teclado numérico."; ]; ! Dormitorio Localidad_Dormitorios Dormitorio "Dormitorio del Guardia" with descripcion [; give self visitado; print "Es bastante reducido, con apenas una litera"; if (self hasnt general){ if (MantaDormitorio hasnt general) print "... con una manta desordenada"; if (BasuraDormitorio in self) print "... basura esparcida"; if ((BasuraDormitorio in Jugador) || (BasuraDormitorio in CajonesDormitorio)) print "... basura sin reciclar"; if (RopasDormitorio in self) print "... ropas tiradas por todos lados"; if (RopasDormitorio in Jugador) print "... ropas por guardar"; if (CajonesDormitorio has abierto) print "... cajones medio sacados de los muros"; if (DuctoDormitorio has abierto) print "... el ducto de reciclado abierto"; print "... aquí hay trabajo por hacer...^"; } else print " y unos cajones en los muros, pero al menos está bastante limpio y ordenado.^"; "Al sur se sale del dormitorio."; ], antes [; Ir : print "La compuerta se cierra al salir del dormitorio.^"; ], afuera [;<>;], al_s CompuertaDormitorio; ! Objetos del Dormitorio Objeto_Escenario LiteraDormitorio "litera" Dormitorio with nombre 'litera', descripcion [; print "Es una litera de la compañía: apenas ancha para que quepa un sólo tipo y no muy fornido... y del largo de una persona normal. Obviamente, un espacial promedio apenas cabe como para dormir en ella... si no se mueve mucho, claro.^"; if (MantaDormitorio hasnt general) "La manta está hecha un revoltijo sobre la litera."; else "La manta está doblada sobre la litera."; ], reaccionar_antes[; Bajar, Salir, Salirse: if (jugador in self) { move jugador to Dormitorio; "Me bajo.^ Con cuidado... ya.^ Un accidente menos."; } else "¿De dónde?..."; ], antes [; Frotar : <>; Estirar : <>; Tocar : "Apenas cede a mi peso. Creo que el suelo estaría más blando."; ], despues [; Meterse : "Es bastante rígida y tan acolchada como una loseta del suelo."; ], has femenino soporte entrable; Objeto_Escenario MantaDormitorio "manta" Dormitorio with nombre 'manta', adjetivos 'material' 'sintetico', descripcion [; print "Es una manta de material sintético, para cubrirse con ella; no es que haga frío, pero alguna gente todavía necesita sentir algo encima para poder dormir. "; if (self hasnt general) "La manta está hecha un revoltijo sobre la litera."; else "La manta está doblada sobre la litera."; ], antes [; Coger : "No... no es mía, y ese tipo la necesita más que yo."; Agitar : "La sacudo un poco, pero queda igual de arrugada."; Estirar : if (self hasnt general) { give self general; print "Con cuidado, estiro y doblo la manta, dejándola con cuidado sobre la litera.^"; if ((DuctoDormitorio has general) && (CajonesDormitorio has general)) { give Dormitorio general; give GuardiaAccesoMina ~visitado; "...y ya está: ¡terminé!"; } else rtrue; } else "Ya está lista."; ] has femenino; Objeto_Escenario DuctoDormitorio "ducto de reciclaje" Dormitorio with nombre 'ducto' 'cilindro' 'conducto', adjetivos 'reciclaje' 'transparente', capacidad 1, descripcion "El ducto es un cilindro transparente; va directo al Área de Reciclado y sirve para... bueno, eso, reciclar.", antes [; Abrir : if (self has general) "Ya acabe aquí, lo dejo en paz."; else {; give self abierto; "Abres el ducto de reciclaje."; } ], despues [; Cerrar : if (BasuraDormitorio in self) { move BasuraDormitorio to Limbo; give self general; print "La basura desaparece limpiamente por el ducto."; if ((MantaDormitorio has general) && (CajonesDormitorio has general)) { give Dormitorio general; give GuardiaAccesoMina ~visitado; "^...y ya está: ¡terminé!"; } else rtrue; } else "Al cerrar el ducto no ocurre nada."; ], has masculino recipiente abrible abierto transparente; Object BasuraDormitorio "basura" Dormitorio with nombre 'basura', nombre_mp 'restos' 'papeles', descripcion "Son papeles y restos varios.", has femenino oculto; Objeto_Escenario CajonesDormitorio "cajones" Dormitorio with nombre 'cajones' 'organizadores', descripcion [; print "Son organizadores adosados al muro."; if (self has abierto) " Están abiertos y casi desencajados del muro."; else " Están cerrados y sólo sus contornos los distinguen del muro."; ], antes [; Abrir : if (self has general) "Ya acabe aquí, lo dejo en paz."; else {; give self abierto; "Abres los cajones."; } ], despues [; Cerrar : print "Cierro con cuidado los cajones y sólo sus contornos los distinguen del muro.^"; if (RopasDormitorio in self){ give self general; if ((MantaDormitorio has general) && (DuctoDormitorio has general)) { give Dormitorio general; give GuardiaAccesoMina ~visitado; "...y ya está: ¡terminé!"; } else rtrue; } else rtrue; ], has masculino nombreplural recipiente abrible abierto; Object RopasDormitorio "ropas" Dormitorio with nombre 'ropas' 'prendas', nombre_f 'ropa', adjetivos 'blancas', descripcion "Son algunas prendas blancas y otras para dormir.", has femenino nombreplural oculto; ! ZONA DE ADMINISTRACION !Clase para localidades de Administración. Class Localidad_Administracion class Habitacion with antes [; Escuchar : if (uno==0) "Nada. Una tumba.^^ Linda analogía..."; Oler : if (uno==0) { "Huele a oxígeno y a plástico.^ Aséptico."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la zona de administración de la base está hecho de losetas plásticas. La decoración estilo Chic-Compañía."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración del area de Administración Decorado_Ampliado DecoradoZonaAdministracion Localidad_Administracion with esta_en [; if ( (localizacion ofclass Localidad_Administracion) && (localizacion ~= OficinaEjecutivo) ) return true; else return false; ], describir 'pared' DescripcionParedesAdministracion G_FEMENINO 'paredes' DescripcionParedesAdministracion G_FEMENINO + G_PLURAL 'muros' DescripcionParedesAdministracion G_MASCULINO + G_PLURAL 'muro' DescripcionParedesAdministracion G_MASCULINO 'luces' "Unos busca caminos amarillentos y agónicos, ubicados aquí y allá en el techo." G_FEMENINO + G_PLURAL 'luz' "Amarillenta y tenue.^ Un asco, apenas puedo ver por donde voy." G_FEMENINO 'rendijas' "Son unos surcos oscuros y porosos que corren entre las losetas" G_FEMENINO + G_PLURAL 'losetas' "Son unos cuadrados plásticos con textura antideslizante. Se ven como nuevos.^ Por lo visto, nadie viene muy seguido por aquí." G_FEMENINO + G_PLURAL 'decoracion' "Techo. Suelo. Paredes.^ Por todos lados, el estilo Chic-Compañía." G_FEMENINO 'estilo' "Todo es liso y sin detalles, de color blanco lechoso tirando a gris, muy parecido al Edificio Corporativo, por cierto; cuando lo visité, me impresionó la uniformidad de todo: sus muebles, sus paredes... y las caras de la gente. Muy alegre..." G_MASCULINO ; [DescripcionParedesAdministracion; return "Las paredes y el techo de la zona de administración de la base están hechas del mismo material del suelo...^^ ...las mismas losetas, con las mismas rendijas, todo impecable...^^ Casi podría creer que a la compañía le interesa mantener bien esta zona de la base."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadAdministracion "localidad de administración" with nombre_m 'acceso' 'pasillo', nombre_f 'oficina', adjetivos 'administracion' 'personal' 'sindicato' 'administrador', descripcion [; np = 2; switch (SiguientePalabra()) { 'pasillo' : if (localizacion == AccesoAdministracion) {;<>;} else "No veo eso que dices."; 'acceso' : if (localizacion == AccesoAdministracion) {;<>;} else "No veo eso que dices."; 'oficina' : if ( (localizacion == Personal) || (localizacion == Sindicato) || (localizacion == OficinaEjecutivo) ) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Administracion) return true; else return false; ] has masculino; ! Ascensor Acceso Administración Localidad_Ascensor AscensorAccesoAdministracion "Ascensor: Acceso Administración" with antes [; Ir: if (uno == obj_abajo) { if (AscensorAccesoAdministracionBaja hasnt general) <>; else { PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Bajamos...^"); PrintAutoPausa("Las puertas se abren.^"); } } ], afuera AccesoAdministracion, al_n AccesoAdministracion, arriba [;<>;], abajo AscensorServiciosPasilloEste; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorAccesoAdministracionBaja "Botón Baja" AscensorAccesoAdministracion with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Boton_Ascensor_Sube AscensorAccesoAdministracionSube "Botón Sube" AscensorAccesoAdministracion; Ranura_Tarjeta RanuraAscAccesoAdministracion "Ranura de Ascensor" AscensorAccesoAdministracion with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if (AscensorAccesoAdministracionBaja hasnt general) { if (Ejecutivo has visitado) { give AscensorServiciosPasilloEsteBaja general; give AscensorAccesoOperacionesSube general; } give AscensorAccesoAdministracionBaja general; give AscensorServiciosPasilloEsteSube general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; ! Acceso a Administración Localidad_Administracion AccesoAdministracion "Acceso a Administración" with irrelevante 'entradas' 'ofcinas', descripcion_larga "El acceso a administración es un pasillo oscuro, apenas iluminado con algunas luces de guía en el techo. Tiene todo un ambiente al infierno de Dante (sí, lo leí) con eso de ~Perded los que aquí entráis toda esperanza~...^ Porque, ya que estamos, muy poca gente recibe buenas noticias cuando viene para acá.^ Si no te van a despedir, es porque te van a dar una de las temidas ~Asignaciones Especiales~, que uno puede rechazar, merced a la ley... para sufrir labores lo más indignas posibles a cambio, merced a la compañia.^ En la pared hay un diario mural. Al este está la entrada a la oficina del Personal y al oeste la del Sindicato. Al norte, la Oficina del Administrador. Se puede ver el ascensor al sur.", descripcion_corta "El acceso a administración es un pasillo oscuro, apenas iluminado con algunas luces de guía en el techo.^ En la pared hay un diario mural. Al este está la entrada a la oficina del Personal y al oeste la del Sindicato. Al norte, la Oficina del Administrador. Se puede ver el ascensor al sur.", antes [; Ir : give AscensorAccesoAdministracionBaja ~general; if (uno==obj_n) { if (Administrativo hasnt visitado) "Mejor no entrar ahí sin un buen motivo.^ Los ejecutivos no tienen demasiada paciencia.^ Mejor averiguo primero en Personal qué quieren de mí..."; else if (Ejecutivo hasnt visitado) { if (Sindical hasnt visitado) "Esto no me gusta nada.^ Mejor pregunto en la oficina del Sindicato qué pueden hacer por mí... antes que la Compañía tome la iniciativa."; else PrintAutoPausa("La verdad, apoyo sindical o no, esto no me gusta nada...^"); } } ], al_n OficinaEjecutivo, al_e Personal, al_o Sindicato, al_s AscensorAccesoAdministracion, adentro AscensorAccesoAdministracion ; ! Objetos de Acceso a Administración Objeto_Ascensor ObjAscensorAccesoAdministracion "ascensor industrial" AccesoAdministracion; ! Decoración de Acceso a Administración Objeto_Escenario DiarioAccesoAdministracion "diario mural" AccesoAdministracion with nombre 'diario' 'mural', descripcion "A pesar de que todos, por ley, debiéramos tener acceso al menos a un terminal, el que siempre (sí, por ley) debe estar actualizado, la compañía en general prefiere evitar problemas con nuestro sindicato y mantiene siempre una copia de los últimos documentos con información vigente: contractual, beneficios, salariales, salud (¡ja!) y otras virguerías ~legales~.^ Pero como la ley no indica el nivel de visibilidad requerido, la compañía publica aquí... donde la luz te deja ciego si intentas leer.^ En todo caso, un espacial que no esté al tanto de estas cosas puede acudir al sindicato... que las conoce de memoria." has masculino; ! Personal Localidad_Administracion Personal "Oficina de Personal" with descripcion_larga "Este es el equivalente a la cueva del lobo en cualquier instalación de la compañía.^ Aunque se supone que podemos enterarnos de nuestras asignaciones diarias en nuestros dormitorios (esos simpáticos paneles LCD sobre nuestras literas), en algunos casos ~delicados~ se le pide al espacial que venga aquí directamente. Conociendo a la compañía, suele ser para algo malo, como un despido, una amonestación... o para algo aun peor:^ Una ~Asignación Especial~.^ Veo un escritorio y algunas sillas.^ Se sale de esta oficina por el oeste.", descripcion_corta "Este es el equivalente a la cueva del lobo en cualquier instalación de la compañía: aquí nos enteramos, de amonestaciones, despidos... o algo peor.^ Veo un escritorio y algunas sillas.", afuera AccesoAdministracion, al_o AccesoAdministracion, ; !Objetos de Personal Ranura_Tarjeta RanuraEscritorioPersonal "Ranura de Escritorio" Personal with irrelevante 'borde', adjetivos 'roja', descripcion "Pues... eso, la ranura donde se inserta la tarjeta. Tiene un borde rojo.", antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (self hasnt general) { give self general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; PSI Administrativo "Administrativo de Personal" Personal with nombre 'administrativo' 'personal', adjetivos 'gris', describir "El administrativo de la compañía me mira con nulo interés.", descripcion "Un tipo totalmente en sintonía con la compañía y su habitual decoración.^^ Gris.^^ El tipo de persona que uno invitaría a un velorio para ~dar el ambiente~.", antes [; Besar, Probar, Follar : "No gracias. Tengo el estómago fuerte, pero no tanto."; Hablar : if (RanuraEscritorioPersonal hasnt general) "Voy a empezar a hablar pero me corta con un terso ~Identifíquese, por favor.~"; ! El jugador no ha hablado con el Admninistrador de la Base else if (Ejecutivo hasnt visitado) { ! El jugador no ha hablado con Administrativo if (self hasnt visitado) { give self visitado; give Sindical ~visitado; AsignacionAdministrativo.proyeccion(); print "Me interrumpe con un ~"; if (UniformeJugador hasnt puesto) print "Le recomiendo vestirse antes de ir donde el Administrador."; else print "Gracias."; "~ y ya no me hace ni puto caso."; ! El jugador ya hablo con Administrativo } else { print "A cada cosa que le digo, responde con ~Preséntese "; if (UniformeJugador hasnt puesto) { style bold; print "¡vestido! "; style roman; } "por favor en la Oficina del Administrador a la brevedad para mayor información.~"; } } else { print "Voy a decirle algo y me escupe un ~¿Ya habló con el Administrador?~^^ Este tipo solo merece un gesto... así que asiento.^^ ~En ese caso, vuelva cuando tenga pruebas de haber cumplido su asignación.~^^ Prefiero no insistir y me marcho.^"; <>; } ] has masculino; Objeto_Escenario SillasPersonal "silla" Personal with nombre_f 'silla', nombre_fp 'sillas', adjetivos 'fundidas' 'empotradas' 'planas', descripcion "Están fundidas al suelo y son planas como el encefalograma de un ejecutivo. Se diseñaron para ser incómodas. La compañía, que nos mima como siempre.", antes [; Tocar : "Duras como roca. Creo que el suelo estaría más blando."; ], despues [; Meterse : "Me duele el trasero al sentarme.^ Cuanto antes me vaya, mejor..."; ], has femenino soporte entrable; ! Decoración de Personal Decorado_Ampliado DecoradoPersonal Personal with describir 'escritorio' "Es de bordes curvos y superficie lisa, todo en plástico gris rata (no pregunten...). Hay un par de sillas empotradas al suelo a ambos lados. En un costado hay una ranura para... adivinen." G_MASCULINO ; ! Oficina del Sindicato Localidad_Administracion Sindicato "Oficina del Sindicato" with irrelevante 'instalaciones' 'espacio', descripcion_larga "Bienvenidos a ~nuestras oficinas~, como decimos en broma los colegas a nuestras instalaciones sindicales.^ Se supone que aquí es donde podemos acudir en caso de algún conflicto contractual con la compañía, la que, por ley, debe proporcionar, a su costo, todo lo necesario para las operaciones sindicales: el espacio necesario, muebles y un colega de tiempo completo con su salario correspondiente.^ ¿Resultado?^ Todo es de segunda: el escritorio, las sillas, unos uniformes colgando en la pared...^ Se sale de esta oficina por el este.", descripcion_corta "Bienvenidos a ~nuestras oficinas~, como decimos en broma los colegas a nuestras instalaciones sindicales.^ Como corresponde al caso, todo es de segunda: el escritorio, las sillas, unos uniformes colgando en la pared...^ Se sale de esta oficina por el este.", afuera AccesoAdministracion, al_e AccesoAdministracion, ; ! Objetos del Sindicato PSI Sindical "Representante Sindical" Sindicato with nombre 'representante' 'espacial', adjetivos 'sindical' 'flaco', describir "Y, por las apariencias, el Representante Sindical aquí presente.", descripcion "Técnicamente, este... individuo es un colega, un espacial. Sin embargo, basta mirarlo un poco para sospechar algo raro. Por físico, uno supondría que jamás se ha puesto un traje EVA salvo cuando llegó a la Base: está más flaco que mi pensión de retiro.^ Curiosamente, tiene una mirada bastante alerta.", antes [; Besar, Probar, Follar : "Este tipo suele ser una ayuda... así que mejor consigo que me ayude de otra manera."; Hablar : ! El jugador no ha hablado con el Admninistrador de la Base if (Ejecutivo hasnt visitado) { ! El jugador no ha hablado con Personal if (Administrativo hasnt visitado){ if (self hasnt visitado) { give self visitado; BienvenidaSindical.proyeccion(); <>; } else "~Anda, ve primero a 'Pesonal' y ya hablaremos.~"; ! El jugador ya hablo con personal } else { if (self hasnt visitado) { give self visitado; AsignacionSindical.proyeccion(); <>; } else "~Nada, vete a 'Te lo Administro' y ya hablaremos.~"; } ! El jugador ya ha hablado con el Admninistrador de la Base } else if (self hasnt visitado) { give self visitado; give self general; TarjetaSindical.proyeccion(); <>; } else "~Tío, ya nada más puedo hacer.~"; ] has masculino; Objeto_Escenario SillasSindicato "silla" Sindicato with nombre_f 'silla', nombre_fp 'sillas', adjetivos 'plegables', descripcion "Sillas plegables.^ Cojean. Sin que se las toque.^ Modelo ~estás sentado más de cinco minutos y sientes que se te incrustan en todas partes.~^ El Sindical, sin embargo, parece cómodo...", antes [; Tocar : "Casi se cae y tengo que aferrarla para que no se pliegue."; ], despues [; Meterse : "Casi me caigo al sentarme... y si respiro, se mueven.^ No digo yo, si es inmobiliario de desecho..."; ], has femenino soporte entrable; ! Decoración de Sindicato Decorado_Ampliado DecoradoSindicato Sindicato with describir 'muebles' "Un escritorio y unas sillas de segunda mano." G_MASCULINO + G_PLURAL 'uniformes' "Son monos azules de una sola pieza, con las botas de seguridad incorporadas. El sindicato se preocupa de nuestra presencia personal, y siempre tiene a mano ropa para los despistados... o alguien en apuros." G_MASCULINO + G_PLURAL 'escritorio' "Es de bordes rectos y resquebrajados, con una superficie irregular y con agujeros desconchados, todo en metal de desecho reciclado. Hay un par de sillas a ambos lados." G_MASCULINO ; ! Oficina del Administrador de la Base Localidad_Administracion OficinaEjecutivo "Oficina del Administrador de la Base" with irrelevante 'barba' 'ruedas' 'formas' 'uniones', descripcion_larga "Si las Oficinas de Personal son la cueva del lobo, la Oficina del Administrador de la Base es el cubil de un Dragón... y no es mera metáfora.^ ¿Saben como nota uno que ha llegado a una Oficina Ejecutiva? Bueno, para empezar, la habitación es sumamente espaciosa, tanto que se necesita caminar para llegar a cualquier punto de ella. Además, los muebles, las paredes, el suelo, son todos de madera... o un símil muy parecido. Las sillas se ven comodísimas.^ Y como colofón, una enorme ventana transparente al espacio.^ Aparte de Control de Navegación, es probablemente la única ventana en toda la base.^ Esta es indudablemente la oficina de un ejecutivo... con la salida al sur.", descripcion_corta "Si las Oficinas de Personal son la cueva del lobo, la Oficina del Administrador de la Base es el cubil de un Dragón... y no es mera metáfora. Basta con mirar el derroche de lujo en ventana, muebles y demás para asimilar que esta es indudablemente la oficina de un ejecutivo... con la salida al sur.", antes [; Dejar, PonerSobre : "Hago apenas un ademán y el ejecutivo me detiene, susurrando ~Por favor, no me deje desórdenes aquí.~"; !Tocar : "No me atrevo."; Escuchar : if (uno==0) "Oigo una musiquilla de fondo.^^ Clásica, creo..."; Oler : if (uno==0) { "Huele ligeramente a tabaco.^ Muy agradable."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la oficina están hechos de hermosas tablas de madera, pulidas. Reflejan la luz muy suavemente."; ], no_puedes_ir "Mejor no hacer el ridículo y moverme con cuidado...", afuera AccesoAdministracion, al_s AccesoAdministracion, ; ! Objetos de la Oficina del Administrador PSI Ejecutivo "Administrador de la Base" OficinaEjecutivo with nombre 'administrador' 'ejecutivo', describir [; ! El jugador no ha hablado con el Admninistrador de la Base if (self hasnt visitado) "El administrador de la base, el ejecutivo residente de la compañía, me observa con interés desde su escritorio."; else "El administrador de la base contempla el espacio más allá de la ventana, con una expresión preocupada."; ], descripcion "El administrador es la perfecta imagen del ejecutivo ~ascendente~ de la compañía: vestido impecablemente, de rostro joven y con una barba cuidadosamente ~no afeitada~. Es delgado y esbelto; no lo confundiría con un espacial ni aunque tuviera cataratas. Me dedica una sonrisa plácida, pero hay rumores de lo que hacen los ejecutivos a la ~carrera profesional~ de un espacial, mientras mantienen esa misma sonrisa...", antes [; Follar : "La cosa es más bien al revés, en general... así que, mejor no insistir."; Hablar : ! El jugador no ha hablado con el Admninistrador de la Base if (self hasnt visitado) { if (UniformeJugador hasnt puesto) "Antes de que atine a decir nada me dice fríamente ~Vístase primero, y luego hablaremos.~^^ Mierda... mal comienzo."; else { give self visitado; give Sindical ~visitado; give TecnicoMedico ~visitado; AsignacionEjecutivo.proyeccion(); AsignacionEjecutivo2.proyeccion(); AsignacionEjecutivo3.proyeccion(); ! Presentación Segundo Acto LimpiaPantalla.proyeccion(); box "Acto II: Aprovisionamiento" "" "~Proveeremos todas sus necesidades~" "" ""; PrintPausa("",0); LimpiaPantalla.proyeccion(); <>; } } else "~No me interrumpa. Arrégleselas solo: ese fue el trato.~"; ] has masculino; Objeto_Escenario SillasOficinaEjecutivo "silla" OficinaEjecutivo with nombre_m 'acolchado', nombre_f 'silla', nombre_fp 'sillas', adjetivos 'respaldo' 'alto' 'acolchadas', descripcion "Son sillas de respaldo alto, enteramente acolchadas, con ruedas para desplazarlas a gusto por la habitación.", antes [; Empujar: "Mejor dejo las cosas donde están."; Tocar : "Suavidad, textura... un lujo, incluso en las sillas."; ], despues [; Meterse : "Es como sentarse en una nube. Costará quedarse despierto aquí..."; ], has femenino soporte entrable; Objeto_Escenario MesaOficinaEjecutivo "mesa" OficinaEjecutivo with nombre 'mesa', adjetivos 'redonda', descripcion "Una mesa redonda para reuniones, también en madera. Deben caber fácil unas 10 personas sentadas con comodidad. Tiene un proyector holográfico al centro.", antes [; Tocar : "Es suave y cálida, mi mano se desliza como si fuera seda."; Meterse: "Voy a subirme a la mesa, pero el ejecutivo susurra ~Por favor, no dañe los muebles. Use las sillas, si necesita sentarse.~"; ] has femenino soporte entrable; Objeto_Escenario EscritorioOficinaEjecutivo "escritorio" OficinaEjecutivo with nombre 'escritorio', descripcion "De lujo. Todo de madera pulida y lacada, liso y brillante. De formas curvas, sinuosas.", antes [; Tocar : "Es suave y cálido, muy firme."; Meterse: "Voy a subirme al escritorio, pero el ejecutivo susurra ~Por favor, no dañe los muebles. Use las sillas, si necesita sentarse.~"; ] has masculino soporte entrable; ! Decoración de la Oficina del Administrador Decorado_Ampliado DecoradoOficinaEjecutivo OficinaEjecutivo with describir 'luces' "No las veo. Y sin embargo, hay luz.." G_FEMENINO + G_PLURAL 'muebles' "Un escritorio, una mesa para reuniones y unas estupendas sillas." G_MASCULINO + G_PLURAL 'proyector' "Es un lente circular incrustado al centro de la mesa, para proyección de hologramas." G_MASCULINO 'madera' "No sé de que clase, pero parece natural." G_FEMENINO + G_PLURAL 'ventana' "Es ancha, como para 10 espaciales de lado con los brazos extendidos. Lisa, perfectamente limpia. Se ve el espacio afuera y algunas rocas menores flotando." G_FEMENINO 'rocas' "Son unos asteroides menores que orbitan la base." G_FEMENINO + G_PLURAL ; Decorado_Ampliado DecoradoOficinaEjecutivo2 OficinaEjecutivo with describir 'tablas' "Son magníficas, largas y anchas, todo de madera, con las uniones apenas visibles. Un verdadero lujo..." G_FEMENINO + G_PLURAL 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO 'pared' DescripcionParedesEjecutivo G_FEMENINO 'paredes' DescripcionParedesEjecutivo G_FEMENINO + G_PLURAL 'muros' DescripcionParedesEjecutivo G_MASCULINO + G_PLURAL 'muro' DescripcionParedesEjecutivo G_MASCULINO 'luz' "Muy suave, pero todo se distingue nítidamente." G_FEMENINO 'espacio' "Estrellas hasta donde alcanza la vista... frías estrellas..." G_MASCULINO 'estrellas' "Se ven unas pocas... y la luz ambiente (no entiendo como) las realza." G_FEMENINO + G_PLURAL ; [DescripcionParedesEjecutivo; return "Las paredes también están hechas con tablas de madera, tan magníficas como las del suelo."; ]; ! ZONA DE OPERACIONES !Clase para localidades de Zona de Operaciones Class Localidad_Operaciones class Habitacion with antes [; Escuchar : if (uno==0) "Zumbidos eléctricos, retumbar de maquinaria...^^ El corazón de la base, latiendo sin parar."; Oler : if (uno==0) { "Huele a ozono.^ El aislante eléctrico necesita un cambio..."; }; Examinar: if ((uno == obj_abajo) || (uno == obj_arriba)) "El suelo y el techo de la zona de operaciones de la base está hecho de planchas metálicas."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración de la Zona de Operaciones Decorado_Ampliado DecoradoZonaOperaciones Localidad_Operaciones with esta_en [; if (localizacion ofclass Localidad_Operaciones) return true; else return false; ], describir 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estamos parados." G_FEMENINO 'roca' "La roca del asteroide, de color parduzco, apenas pulida en forma tosca." G_FEMENINO 'pared' DescripcionParedesOperaciones G_FEMENINO 'paredes' DescripcionParedesOperaciones G_FEMENINO + G_PLURAL 'muros' DescripcionParedesOperaciones G_MASCULINO + G_PLURAL 'muro' DescripcionParedesOperaciones G_MASCULINO 'luces' "Son unas luces pequeñitas (no más de un palmo) ubicadas en algunos puntos del muro y del techo, para aprovechar la máxima eficiencia. Resultado: puedes ver donde pisas y algo de lo que estás haciendo... y poco más." G_FEMENINO + G_PLURAL 'luz' "Amarillenta y escasa.^ Apenas permite moverse." G_FEMENINO 'rendijas' "Son unos surcos oscuros que corren entre las planchas." G_FEMENINO + G_PLURAL 'planchas' "Son unos cuadrados de apariencia metálica, probablemente hechos con desechos de la mina. Son de color pardo, para complementar el alegre tono de las paredes.^ Tienen unas rendijas en las uniones entre planchas, para efectos de ajuste." G_FEMENINO + G_PLURAL ; [DescripcionParedesOperaciones; if (localizacion == Sistemas) return "De pared a pared, solo hay módulos informáticos."; else return "Las paredes son de roca del asteroide, sin ningún revestimiento.^ La compañía nunca gasta donde no debe... y en las paredes, de la zona de operaciones, menos."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadOperaciones "localidad de operaciones" with nombre_m 'pasillo' 'acceso' 'procesamiento', nombre_f 'sala' 'area', adjetivos 'operaciones' 'sistemas' 'reciclado' 'equipamiento' 'minerales', descripcion [; np = 2; switch (SiguientePalabra()) { 'pasillo' : if ( (localizacion == OperacionesPasillo1) || (localizacion == OperacionesPasillo2) || (localizacion == OperacionesPasillo3) || (localizacion == OperacionesPasillo4) ) {;<>;} else "No veo eso que dices."; 'acceso' : if ( (localizacion == AccesoOperaciones) || (localizacion == AccesoMina) ) {;<>;} else "No veo eso que dices."; 'sala' : if (localizacion == Sistemas) {;<>;} else "No veo eso que dices."; 'area' : if ( (localizacion == Reciclado) || (localizacion == Equipamiento) ) {;<>;} else "No veo eso que dices."; 'procesamiento' : if (localizacion == ProcesamientoMinerales) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Operaciones) return true; else return false; ] has masculino; ! Ascensor Acceso a Operaciones Localidad_Ascensor AscensorAccesoOperaciones "Ascensor: Acceso a Operaciones" with antes [; Ir : if (uno == obj_arriba) { if (AscensorAccesoOperacionesSube hasnt general) <>; else { PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Subimos...^"); PrintAutoPausa("Las puertas se abren.^"); } } ], afuera AccesoOperaciones, al_e AccesoOperaciones, arriba AscensorServiciosPasilloEste, abajo [;<>;]; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorAccesoOperacionesBaja "Botón Baja" AscensorAccesoOperaciones; Boton_Ascensor_Sube AscensorAccesoOperacionesSube "Botón Sube" AscensorAccesoOperaciones with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Ranura_Tarjeta RanuraAscAccesoOperaciones "Ranura de Ascensor" AscensorAccesoOperaciones with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (AscensorAccesoOperacionesSube hasnt general) { give AscensorServiciosPasilloEsteSube general; give AscensorServiciosPasilloEsteBaja general; give AscensorAccesoAdministracionBaja general; give AscensorAccesoOperacionesSube general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; ! Acceso a Operaciones Localidad_Operaciones AccesoOperaciones "Acceso a Operaciones" with irrelevante 'instalaciones' 'pasillo', descripcion_larga "Desde esta sala cuadrada, amplia, iluminada con algunas luces de guía en el suelo y en el centro del techo, se accede a las distintas instalaciones del área de operaciones, cuya forma general semeja a un semi-círculo (incluyendo la línea del diámetro).^ Aunque se ve poca gente por acá, ya que el grueso del trabajo es en las minas, este nivel no está desierto ni mucho menos.^ En la pared hay un letrero. Al norte, comienza el pasillo semicircular de acceso a los distintos módulos del nivel. Al este, un largo pasillo lleva al acceso a la Mina. Se puede ver la entrada del ascensor al oeste.", descripcion_corta "El acceso a operaciones es una sala cuadrada, amplia, iluminada con algunas luces de guía en el suelo y en el centro del techo.^ En la pared hay un letrero. Al norte, comienza el pasillo semicircular de acceso a los distintos módulos del nivel. Al este, un largo pasillo lleva al acceso a la Mina. Se puede ver la entrada del ascensor al oeste.", antes [; Ir : give AscensorAccesoOperacionesSube ~general; ], al_n OperacionesPasillo1, al_e PasilloAccesoMina, al_o AscensorAccesoOperaciones, adentro AscensorAccesoOperaciones, ; ! Objetos del Acceso a Dormitorios Objeto_Ascensor ObjAscensorAccesoOperaciones "ascensor industrial" AccesoOperaciones; ! Decoración de Acceso a Operaciones Decorado_Ampliado DecoradoAccesoOperaciones AccesoOperaciones with describir 'diagrama' DescripcionAvisoAccesoOps G_MASCULINO 'aviso' DescripcionAvisoAccesoOps G_MASCULINO 'letrero' DescripcionAvisoAccesoOps G_MASCULINO 'cartel' DescripcionAvisoAccesoOps G_MASCULINO ; [DescripcionAvisoAccesoOps; return "Es un diagrama impreso con la organización de este nivel. Su forma general semeja a un semi-círculo, incluyendo la línea del diámetro.^ Por el pasillo norte, avanzando en un arco, se llega a los módulos de:^ - Sistemas^ - Reciclado^ - Equipamiento^ - Reactor^ - Procesamiento Mineral.^ Al final del pasillo este se llega a los ascensores para ir al nivel de la Mina. (indica ~AUTORIZACION REQUERIDA~)"; ]; ! Pasillo Operaciones # 1 Localidad_Operaciones OperacionesPasillo1 "Pasillo de Operaciones" with irrelevante 'calzado' 'sala', descripcion [; print "Este es el principio del pasillo de acceso a los módulos de operaciones: igual a la sala de acceso al sur, pero más estrecho y con el techo más bajo. Al oeste, "; if (CompuertaSistemas has abierta) print "se llega "; else print "una puerta transparente da acceso "; "al Área de Sistemas. El pasillo sigue al noreste, mientras que al sur se regresa al acceso a Operaciones."; ], ! antes [; ! Ir : ! if ( ((uno == obj_o) || (uno == obj_adentro)) && (TecnicaSistemas has visitado) ) ! give CompuertaSistemas ~abierta; ! ], al_s AccesoOperaciones, adentro [;<>;], al_o CompuertaSistemas, al_ne OperacionesPasillo2, ; ! Objetos del Pasillo Operaciones # 1 Conexion CompuertaSistemas "compuerta de acceso a sistemas" with nombre 'puerta' 'compuerta', adjetivos 'acceso' 'sistemas', descripcion [; if (self has abierta) print "La puerta se ha deslizado por el muro"; else print "La compuerta de acceso a sistemas es completamente transparente"; if (localizacion == OperacionesPasillo1) print ": puedo ver a una Técnica del otro lado"; print "."; " A un costado hay una ranura para tarjetas de acceso."; ], antes [; BuscarEn : if (localizacion == OperacionesPasillo1) <>; else "Puedo ver el pasillo del otro lado."; Tirar, Empujar, Abrir : if (self hasnt abierta) "Tiro, empujo, muevo... No hay forma de hacerlo: no se abre."; else "Ya está abierta."; Cerrar : if (self hasnt abierta) "Ya está cerrada."; else "No hay forma de hacerlo."; Atacar, Tocar : if (self hasnt abierta) { if (TecnicaSistemas hasnt visitado) { TocarCompuertaSistemas.proyeccion(); give self abierta; <>; } else "La chica me tira un beso, menea la cabeza, y vuelve a lo suyo."; } else "La puerta se ha deslizado por el muro."; ], has femenino escenario abrible ~abierto; Ranura_Tarjeta RanuraOperacionesPasillo1 "Ranura de Compuerta" OperacionesPasillo1; PSI TecnicaSistemasPasillo "Técnica de Sistemas" OperacionesPasillo1 with nombre 'tecnica' 'chica' 'mujer' 'alguien' 'espacial', adjetivos 'sistemas' 'atletica' 'musculosa', describir [; if (self hasnt visitado) "Hay alguien del otro lado de la puerta."; else "Hay una chica estupenda en el Área de Sistemas."; ], descripcion[; if (self hasnt visitado) give self visitado; "Es una espacial, no cabe duda: muy atlética y algo más musculosa que otras espaciales que he visto... y está muy bien; se ve estupenda. El traje, el pelo... tío, es una verdadera escultura.^ Se mueve sinuosamente de un lado a otro, ocupada mirando los módulos informáticos, haciendo esto y lo otro."; ], antes [; Hablar : if (CompuertaSistemas has abierta) "Me responde: ~¿Qué esperas para entrar, una invitación?~"; else "No parece oírme..."; Recibir, Tocar, Oler, Besar, Probar, Follar : "Tendría que estar en la Sala de Sistemas para intentarlo."; ] has femenino; ! Decoración del Pasillo Operaciones # 1 Decorado_Ampliado DecoradoOperacionesPasillo1 OperacionesPasillo1 with describir 'traje' "Es un monopieza, como mi uniforme, pero menos tosco y liso, con calzado más pequeño y suave. Le ajusta en todas las partes correctas..." G_MASCULINO 'pelo' "Negro, brillante y recogido con un moño. Debe ser un fastidio en su trabajo... pero suelto ha de ser un espectáculo." G_MASCULINO ; ! Sala de Sistemas Localidad_Operaciones Sistemas "Sala de Sistemas" with irrelevante 'calzado' 'pasillo', descripcion_larga "Es una habitación muy limpia, con sus muros abarrotados de módulos informáticos de vaya uno a saber qué funciones... y la verdad, prefiero no saberlo. Como en la cabina de un OTV, aquí, con apretar mal un botón, habría consecuencias... desagradables (con suerte).^ Aquí está concentrada toda la capacidad de procesamiento de la base, por lo que es una de las habitaciones más seguras de toda la instalación. Ni siquiera la oficina del ejecutivo tiene este aire a templo. En todo caso, todo ello no es ni la mitad de interesante que la chica que los opera... que evoca cosas decididamente terrenales.^ Para volver al pasillo de Operaciones hay que ir al este.", descripcion_corta "Es una habitación con muros abarrotados de módulos informáticos. En todo caso, todo ello no es ni la mitad de interesante que la chica que los opera.^ Para volver al pasillo de Operaciones hay que ir al este.", antes [; Dejar, PonerSobre : "La chica me devuelve mis cosas, diciendo ~Lo siento, no está permitido dejar aquí objetos personales.~"; ], afuera [;<>;], al_e CompuertaSistemas, ; ! Objetos de Sistemas Ranura_Tarjeta RanuraSistemas "Ranura de Compuerta" Sistemas; PSI TecnicaSistemas "Técnica de Sistemas" Sistemas with nombre 'tecnica' 'chica' 'mujer' 'espacial', adjetivos 'sistemas' 'esbelta' 'musculosa', describir "La técnica de sistemas no me quita los ojos de encima...", descripcion "Está parada en medio de la habitación, mirándome con una sonrisa juguetona. Se ve pero que muy bien; esbelta y musculosa, con un traje que parece una segunda piel.", antes [; Hablar : if (self hasnt general) { give self general; FlirteoTecnicaSistemas.proyeccion(); rtrue; } else "~Bueno~, me dice con una risita, ~¿A qué esperas?~"; Tocar, Oler : if (self hasnt general) "Prefiero preparar el terreno antes... precipitarse es malo, en este tipo de cosas."; else "No creo que esta chica se conforme con eso."; Follar, Coger, Besar, Probar : if (self hasnt general) "Prefiero preparar el terreno antes... precipitarse es malo, en este tipo de cosas."; else { FollarTecnicaSistemas.proyeccion(); give self visitado; give CompuertaSistemas ~abierto; JugadorA(OperacionesPasillo1); rtrue; } ] has femenino; ! Decoración del Pasillo Operaciones # 1 Decorado_Ampliado DecoradoSistemas Sistemas with antes [; Tocar, Coger, Empujar : "¿¡Y hacer un desastre informático?! Nones..."; ], describir 'modulo' DescripcionModulosSistemas G_MASCULINO 'modulos' DescripcionModulosSistemas G_MASCULINO + G_PLURAL 'luces' "Luces de colores que titilan...^ ...titilan...^^ Mejor miro otra cosa." G_FEMENINO + G_PLURAL 'pantallas' "Las pantallas de los módulos muestran...^^ La verdad, no tengo idea de qué diablos es todo eso.^ Por suerte..." G_FEMENINO + G_PLURAL 'teclados' "Son para teclear en ellos e ingresar datos o instrucciones en los módulos.^ Aplausos por mi astucia." G_MASCULINO+ G_PLURAL ; Decorado_Ampliado DecoradoTecnicaSistemas Sistemas with antes [; Tocar, Oler : if (TecnicaSistemas hasnt general) "Prefiero preparar el terreno antes... precipitarse es malo, en este tipo de cosas."; else "No creo que esta chica se conforme con eso."; Coger : <>; ], describir 'traje' "Es un monopieza, como mi uniforme, pero menos tosco y liso, con calzado más pequeño y suave. Le ajusta en todas las partes correctas..." G_MASCULINO 'pelo' "Negro, brillante y recogido con un moño. Debe ser un fastidio en su trabajo... pero suelto ha de ser un espectáculo." G_MASCULINO 'piel' "Lo que se puede ver, es liso, sin manchas. Ha de ser suave..." G_FEMENINO 'boca' "Labios sensuales y rojos, sonrisa juguetona...^^ ...la punta de la lengua apenas asomada...^^ Hmmm..." G_FEMENINO + G_PLURAL 'ojos' "Unos pozos sin fondo, que no dejan de mirarme..." G_MASCULINO + G_PLURAL 'cuerpo' "Es muy atlética y algo más musculosa que otras espaciales que he visto... y está muy bien; su pelo, sus ojos, esa boca... se ve estupenda." G_MASCULINO ; [DescripcionModulosSistemas; return "Un enredo de luces, pantallas, teclados plegables... joder, la cabina del OTV era más simple que esto..."; ]; ! Pasillo Operaciones # 2 Localidad_Operaciones OperacionesPasillo2 "Pasillo de Operaciones" with descripcion "Estoy en el pasillo de acceso a los módulos de operaciones. Es estrecho y con el techo más bajo. Al noroeste, está el Área de Reciclado. El pasillo continúa hacia el este y por el suroeste se vuelve al acceso a Operaciones.", al_e OperacionesPasillo3, al_so OperacionesPasillo1, al_no Reciclado, ; ! Area de Reciclado Localidad_Operaciones Reciclado "Área de Reciclado" with irrelevante 'aire' 'tuberias' 'ventilacion', descripcion_larga "El área de reciclado es... bueno, es un asco, pero es necesaria: aquí se reprocesa el aire de la base y se hace recircular (eventualmente) por las tuberías del sistema de ventilación. Veo unos tanques enormes donde se procesan los... ~residuos orgánicos~.^ Huele todo horrible y los espaciales de por aquí siempre se ven, bueno, molestos: la mayoría trabaja aquí a modo de castigo y con horarios más bien extendidos.^ Para volver al pasillo de Operaciones hay que ir al sureste.", descripcion_corta "El área de reciclado es un asco.^ Huele todo horrible y los espaciales de por aquí siempre se ven, bueno, molestos.^ Para volver al pasillo de Operaciones hay que ir al sureste.", antes [; Oler : if (uno==0) { "Todo huele horrible.^ No envidio a los que trabajan aquí..."; }; ], afuera OperacionesPasillo2, al_se OperacionesPasillo2, ; ! Decoración de Reciclado Decorado_Ampliado DecoradoReciclado Reciclado with antes [; Oler : "Huelen espantosamente mal. No sé como lo toleran estos pobres diablos..."; ], describir 'tanques' "Son unos cilindros semi transparentes, muy altos y anchos. En ellos se procesan los ~residuos orgánicos~ de la base para producir, bueno, algunas sustancias químicas de consumo diario en la base (no pregunten...)" G_MASCULINO + G_PLURAL 'residuos' "Una masa gris con vetas marrones que se mueve leeentamente... con vueltas y revueltas... dentro del tanque.^ Prefiero no fijarme en los detalles." G_MASCULINO + G_PLURAL 'residuos' "Son... digo, parecen...^^ Puaj." G_FEMENINO + G_PLURAL 'detalles' "Hay trocitos sólidos... otros no tanto...^ Algunos son de colores más oscuros y otros más pálidos...^^ ¿Por qué estoy haciendo esto? ¡¿Masoquismo?!" G_MASCULINO + G_PLURAL 'trocitos' "Parece que son...^^ ¡Basta!" G_MASCULINO+ G_PLURAL ; Decorado_Espaciales EspacialesReciclado "Espaciales" Reciclado with describir "Por todos lados, varios espaciales trabajando duro.", descripcion "Los espaciales que trabajan aquí usan unos trajes más bien gruesos y no son -sorpresa- los más populares de la base, pese a que tienen acceso a baños químicos especiales y tal. Tomando en cuenta las condiciones de trabajo, no es raro que muchos consideren un turno en Reciclado como un castigo...^^ Porque es exactamente eso." ; ! Pasillo Operaciones # 3 Localidad_Operaciones OperacionesPasillo3 "Pasillo de Operaciones" with descripcion "Estoy en el pasillo de acceso a los módulos de operaciones. Es estrecho y con el techo más bajo. Al norte, está el Área de Equipamiento. El pasillo continúa hacia el sureste y por el oeste se vuelve al acceso a Operaciones.", al_n Equipamiento, al_o OperacionesPasillo2, al_se OperacionesPasillo4, ; ! Area de Equipamiento Localidad_Operaciones Equipamiento "Área de Equipamiento" with descripcion_larga "El área de equipamiento es, después de sistemas, unas de las áreas más críticas de la base. Un error en la administración de este sitio puede provocar atrasos, si no desastres, en las operaciones mineras.^ Por otro lado, es un lugar que genera codicias, por lo que suele estar atendido por gente experta... y muy disuasiva.^ Hay un mesón grande, con un espacio para acceso de montacargas por un costado; detrás de todo ello, hay varios estantes y un sistema de correas móviles y elevadores para guardar o sacar los insumos que no están a la vista.^ Por el sur se regresa al pasillo de Operaciones.", descripcion_corta "El área de equipamiento es un mesón grande, con un espacio para acceso de montacargas por un costado; detrás de todo ello, hay varios estantes y un sistema de correas móviles y elevadores para guardar o sacar los insumos que no están a la vista.^ Por el sur se regresa al pasillo de Operaciones.", afuera OperacionesPasillo3, antes [; Dejar, PonerSobre : if (EspacialEquipamiento in self) "El espacial me devuelve bruscamente mis cosas, diciendo ~¡No me jodas el inventario, imbécil!~"; ! else rtrue; ], al_s OperacionesPasillo3, ; ! Objetos del Area de Equipamiento Ranura_Tarjeta RanuraEquipamiento "Ranura de Mesón" Equipamiento with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if (self hasnt general) { give EspacialEquipamiento ~visitado; give self general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else{ print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; Object TrajeMinero "traje minero" Limbo with nombre_m 'traje' 'casco' 'mono', nombre_mp 'guantes', nombre_fp 'botas', adjetivos 'minero', descripcion "Del manual: un traje para actividades dentro de la mina. El casco, los guantes y las botas están unidos al mono y es una pieza única.", antes [; Oler : if (self has puesto) "Huele a oxígeno... a sudor...^^ No es mejor que un Traje EVA, la verdad."; else "Huele a plástico y otras porquerías."; Dejar, Desvestir : if ((EstacionRV has general) && (TrajeMinero hasnt visitado) && (localizacion ofclass Localidad_Mina) ) { give TrajeMinero visitado; "Mejor me lo dejo puesto. Se supone que el ambiente aquí abajo es un poco... corrosivo."; } else if (localizacion ofclass Localidad_Mina) { PrintAutoPausa("Me saco el traje minero..."); PrintAutoPausa(" pero algo no va bien."); MuerteTrajeMinero.proyeccion(); banderafin = 1; rtrue; } else if (self has puesto) { give self ~puesto; if (GramponesViejos has puesto) give GramponesViejos ~puesto; if (Grampones has puesto) give Grampones ~puesto; move UniformeJugador to Jugador; give UniformeJugador puesto; rtrue; } else {; move self to localizacion; "Dejado."; } Vestir : if (localizacion ~= AscensorDetenido) "No tiene sentido ponérmelo antes de entrar a la mina."; ], despues [; Vestir : move UniformeJugador to Limbo; "Es un poco rígido, pero me queda justo. Me protegerá bien del ambiente de las Minas."; ], has masculino prenda ~puesto; Object Grampones "grampones metálicos nuevos" Limbo with nombre 'grampones', adjetivos 'metalicos' 'nuevos', descripcion [; print "Son grampones metálicos antideslizantes "; if (self has puesto) "y se ajustan bien a las botas del traje."; else " para evitar deslizamientos en terrenos escarpados, aunque no son para escaladas verticales. Están como nuevos."; ], antes [; Oler : if (self has puesto) "No llego a sentirles el olor."; else "Huelen a metal..."; Vestir : if (TrajeMinero hasnt puesto) "Primero me tengo que poner el traje minero."; else { if (GramponesViejos has puesto) "Ya tienes puestos unos grampones."; else { give self puesto; "Los pongo en el suelo y al pisarlos se ajustan perfectamente a las botas."; } } Dejar, Desvestir : if ((EstacionRV has general) && (self hasnt visitado) && (localizacion ofclass Localidad_Mina) ) { give self visitado; "Mejor me los dejo puestos. Es fácil derrapar sin ellos."; } else if (self has puesto) { give self ~puesto; "Me saco los grampones con cuidado."; } else {; move self to localizacion; "Dejado."; } ], has masculino nombreplural prenda ~puesto; PSI EspacialEquipamiento "Espacial de Equipamiento" Equipamiento with nombre 'espacial', adjetivos 'fornido', describir "Detrás del mesón hay un espacial con una cara de aburrido terminal.", descripcion "Un espacial bastante fornido, que se dedica a atender pedidos y llevar el inventario de artículos en uso y almacenados... y mantener a raya a la gente ávida de equipamiento.^ Una mezcla de bibliotecario con dependiente de una ferretería y matón de prisión, digamos.^ Tiene una expresión de desinterés absoluto.^ Al su lado, el mesón tiene una ranura para tarjetas de acceso.", antes [; Besar, Probar, Follar : "Definitivamente no: no es mi tipo..."; Hablar : if (RanuraEquipamiento hasnt general) { if (self hasnt visitado) { give self visitado; "~¿Qué quieres?~ me espeta.^^ ~Mira~, le digo yendo al grano, ~necesito equipamiento para bajar a las Minas y...~^^ No me deja terminar y escupe un ~Inserta tu tarjeta en la ranura y ya traigo tu equipo.~"; } else "Voy a empezar a hablar pero me corta con un aburrido ~La tarjeta en la ranura, por favor.~"; } else if (self hasnt visitado) { give self visitado; HablarEspacialEquipamiento.proyeccion(); <>; } else "~Si no hay plato, no hay trato.~ me dice y luego hace como si no estuviera presente."; ], has masculino; Objeto_Escenario MesonEquipamiento "mesón" Equipamiento with nombre 'meson', nombre_f 'mesa', descripcion "Un mesón de metal reforzado que abarca casi todo el ancho de la habitación. Al un costado, el mesón tiene una ranura para tarjetas de acceso.", antes [; Tocar : "Es duro y frío, abollado por el uso."; Meterse : if (EspacialEquipamiento in Equipamiento) "Voy a subirme al mesón, pero el espacial me ataja con un ~¡Bájate, idiota, que esto es un área de trabajo, no un escenario!~"; ], despues [; Meterse : "Me subo a mesón. La vista es... la misma de antes."; ] has masculino soporte entrable; ! Decoración del Area de Equipamiento Decorado_Ampliado DecoradoEquipamiento Equipamiento with describir 'metal' "Son planchas de aleación metálica reforzada." G_MASCULINO 'espacio' "Una zona abierta al final del mesón, para el acceso de montacargas cuando hay que retirar o entregar materiales pesados. De momento, está vacía." G_MASCULINO 'estantes' "Una infinidad de estantes de varios niveles, por encima y debajo del suelo, y en varias hileras paralelas que se pierden en la penumbra del fondo de la habitación. Están repletos de equipamiento." G_MASCULINO + G_PLURAL 'equipamiento' "Un sin fin de esto y lo otro: todas las cosas que un espacial puede necesitar para hacer su trabajo en las Minas." G_MASCULINO 'correas' "Unas bandas móviles, conectadas entre sí y con las entradas de los elevadores. Se ven también sobre los estantes." G_FEMENINO + G_PLURAL 'elevadores' "Son unas cajas metálicas, dispuestas para almacenar o sacar equipamiento que esté en los estantes superiores o por debajo del piso." G_MASCULINO ; ! Pasillo Operaciones # 4 Localidad_Operaciones OperacionesPasillo4 "Pasillo de Operaciones" with irrelevante 'concreto' 'plastico', descripcion "Estoy en el pasillo de acceso a los módulos de operaciones. Es estrecho y con el techo más bajo. Al noreste, está el Reactor de la base. El pasillo finaliza hacia el sur y por el noroeste se vuelve al acceso a Operaciones.", al_ne CompuertaReactor, al_s ProcesamientoMinerales, al_no OperacionesPasillo3, ; ! Objetos del Pasillo Operaciones # 4 Conexion CompuertaReactor "compuerta de acceso al reactor" with nombre_f 'puerta' 'compuerta', nombre_m 'exagono', adjetivos 'acceso' 'reactor' 'metalica' 'metalico' 'colosal', descripcion "La compuerta de acceso al Reactor es colosal... y no es para menos. Es un hexágono metálico, reforzado con concreto, plástico y vaya uno a saber qué más. Detrás de ella está el reactor nuclear de fisión que proporciona energía a la base... y cuanto menos se sepa o se vea de eso, mejor. Aunque hay estándares de seguridad que coinciden con las condiciones de operación del reactor, entre los espaciales se dice que los operadores del reactor tienen un carrera muy ~brillante~... y muy breve.", antes [; Tirar, Empujar, Abrir : "No me atrevo a abrirla."; Cerrar : "Ya está cerrada.... por suerte."; Tocar : "Está ligeramente tibia.^ Pobres diablos, del otro lado..."; ], has femenino escenario abrible ~abierto; ! Procesamiento de Minerales Localidad_Operaciones ProcesamientoMinerales "Procesamiento de Minerales" with descripcion_larga "Es una vasta área donde se procesa el mineral en bruto de la Mina.... y opera todo el tiempo. Una detención significa pérdida de ingresos para la compañía, y eso es, sencillamente, inadmisible.^ Los turnos de operadores entran y salen casi como el material procesado: sin pausas.^ Se ven trozos de material que llegan en unos elevadores, caen a unas correas y de ahí pasan a las fundiciones. De vez en cuando algunos trocitos de esquirlas caen de las correas o los elevadores... pero nunca hay demasiados a la vista: la compañía no desperdicia nada que pueda llegar a ser dinero.^ Parece que todo opera en forma automática.^ Para volver al acceso a Operaciones hay que ir al norte.", descripcion_corta "Es una vasta área donde se procesa el mineral en bruto de la Mina. Hay elevadores, correas, fundiciones y algunas esquirlas aquí y allá... y parece que todo opera en forma automática.^ Para volver al acceso a Operaciones hay que ir al norte.", afuera OperacionesPasillo4, al_n OperacionesPasillo4, ; ! Objetos de Procesamiento de Minerales Object RestosMinerales "restos minerales" ProcesamientoMinerales with nombre 'restos', nombre_fp 'piedras' 'piedritas' 'esquirlas', adjetivos 'minerales', describir "Hay unos restos de mineral que nadie ha recogido.", descripcion "Son unas piedritas que cayeron de los elevadores de procesamiento. Están en bruto.", antes [; Dar : if ( (otro == TecnicoMedico) && (TecnicoMedico has visitado) && (TecnicoMedico hasnt general) ) { move self to Limbo; give TecnicoMedico general; move FrascoMuestras to Jugador; TecnicoAceptaPiedras.proyeccion(); <>; } else "No pienso desperdiciar este ~souvenir corporativo~..."; ], has masculino nombreplural; ! Decoración de Procesamiento de Minerales Decorado_Ampliado DecoradoProcesamientoMinerales ProcesamientoMinerales with antes [; Tocar, Coger, Empujar: "Mejor no arriesgarme; aquí un accidente puede salir caro, si no fatal."; ], describir 'fundiciones' "Son unos agujeros en el fondo de la habitación, donde cae el material y comienza fundirse. Emanan un calor indescriptible..." G_FEMENINO + G_PLURAL 'material' "Son grandes trozos del interior del asteroide, sacadas del sector de Minas." G_MASCULINO 'mineral' "Son grandes trozos del interior del asteroide, sacadas del sector de Minas." G_MASCULINO 'correas' "Unas bandas móviles, conectadas entre sí y con las entradas de los elevadores y de las fundiciones." G_FEMENINO + G_PLURAL 'elevadores' "Son unas cajas metálicas, que transportan el material en bruto. Salen del suelo, dejan el material en las correas y se pierden en el techo." G_MASCULINO + G_PLURAL 'uniformes' "Son monos rojos de una sola pieza, con las botas de seguridad incorporadas." G_MASCULINO + G_PLURAL ; Decorado_Espaciales EspacialesProcesamientoMinerales "Espaciales" ProcesamientoMinerales with describir "Por todos lados, varios espaciales trabajando duro.", descripcion "Son unos tipos muy fornidos, incluso para un espacial, vestidos con unos uniformes aislantes (un espacial herido puede salir caro ¿saben?). Viéndolos trabajar, mientras recogen esquirlas y las echan a las fundiciones, debo corregir mi impresión inicial: todo aquí está automatizado." ; ! Pasillo Acceso Mina Localidad_Operaciones PasilloAccesoMina "Pasillo de Acceso a Mina" with irrelevante 'caras', descripcion_larga "Es un pasillo ancho y bastante largo, que recorre de un extremo a otro toda el área de Operaciones. Normalmente, por aquí solo circulan los espaciales que trabajan directamente en la mina, por lo que rara vez se ven administrativos y ejecutivos... nunca.^ Supongo que considerando lo arduo de los turnos de trabajo en las profundidades de la mina, uno tiene la sensación del purgatorio, con el infierno (la Mina) o el cielo (Servicios) en uno y otro extremo... del pasillo o del turno, es igual. Las caras de los espaciales que caminan conmigo son elocuentes...^ Siguiendo al este se llega al acceso a la Mina, mientras que por el oeste se vuelve al acceso a Operaciones.", descripcion_corta "Es un pasillo ancho y bastante largo, que recorre de un extremo a otro toda el área de Operaciones.^ Siguiendo al este se llega al Acceso a la Mina, mientras que por el oeste se vuelve al acceso a Operaciones.", al_e AccesoMina, al_o AccesoOperaciones, ; ! Decoración de Pasillo de Acceso a Mina Decorado_Espaciales EspacialesPasilloAccesoMina "Espaciales" PasilloAccesoMina with describir "Me cruzo con algunos espaciales, caminando cansinamente.", descripcion "Mis colegas se mueven despacio, sin demasiado entusiasmo... tanto los que van como los que vienen de la Mina. Todos se ven igual de cansados.^ Definitivamente, la compañía no viene aquí a filmar sus videos de reclutamiento." ; Localidad_Operaciones AccesoMina "Acceso a Mina" with irrelevante 'banco' 'pasillo' 'expresión', descripcion [; if ( (accion==##Mirar) || (self hasnt visitado) ) self.descripcion_larga(); else self.descripcion_corta(); print "Al fondo hay unos ascensores, separados del pasillo por un portal de seguridad, que "; if (DecoradoGrillaAccesoMina in self) print "impide el acceso a los ascensores con una grilla láser. "; else print "permite ahora el acceso a los ascensores. "; "Si no se va a entrar a un elevador, sólo resta volver por el pasillo al oeste."; ], descripcion_larga "El área de acceso a la mina es bastante amplia. Al igual que en zonas sensibles de la base, nadie no autorizado entra. Sin embargo, pese a todas las medidas de seguridad, de vez en cuando hay un sabotaje (la competencia corporativa es feroz) que la compañía intenta luego disfrazar para los medios como un SNAFU de los espaciales.^ Para cualquiera que nos conozca mínimamente, aquello resulta ridículo y patético.^ Personalmente, me consta que la tasa de errores de esa índole es infinitamente mayor entre los ejecutivos que los espaciales: por un error a ellos los despiden, mientras que a nosotros nos puede costar la vida. Hemos aprendido, pues, a no estar distraídos.", descripcion_corta "El área de acceso a la mina es bastante amplia.", antes [; Ir : give AscensorAccesoMinaBaja ~general; if ( (uno == obj_adentro) || (uno == obj_e) ) { if (DecoradoGrillaAccesoMina in self) "No... no quiero pasar a través de la grilla de seguridad. Duele y luego, encima, te mata."; else if (TrajeMinero notin Jugador) { print "El guardia me franquea el paso, diciendo:^ ~Lo siento"; if (GuardiaAccesoMina has visitado) ", amigo, pero no te conviene bajar así, sin un traje minero; la atmósfera allá abajo es corrosiva.~"; else ". No puedes bajar a la Mina sin equipamiento de seguridad.~"; } else if (FrascoMuestras notin Jugador) "No sirve de nada que baje a la mina si no tengo algún contenedor para llevar las malditas muestras que quiere la compañía. Tengo que resolver eso antes de poder bajar..."; } ], despues [; ! La grilla láser se reahabilita al salir Ir : give RanuraAccesoMina ~general; move DecoradoGrillaAccesoMina to AccesoMina; ], afuera PasilloAccesoMina, al_o PasilloAccesoMina, al_e AscensorAccesoMina, adentro AscensorAccesoMina ; ! Objetos del Acceso a Mina Objeto_Ascensor ObjAscensorAccesoMina "ascensor industrial" AccesoMina; Ranura_Tarjeta RanuraAccesoMina "Ranura de Portal" AccesoMina with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if ((self hasnt general) && (TecnicaSistemas has visitado) ){ give self general; move DecoradoGrillaAccesoMina to Limbo; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^ Al mismo tiempo, la grilla láser desaparece.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } } ] ; Object PDA "PDA" AccesoMina with nombre 'pda' 'unidad' 'pantalla' 'interfaz', adjetivos 'personal' 'proceso' 'datos', capacidad 1, descripcion[; if (self has oculto) "No se ven muchos detalles. Habría que tenerla a mano."; else "Es una unidad personal de proceso y despliegue de datos. Tiene una pantalla sensible al tacto. Se nota que tiene mucho uso, pero aparte de eso está en buen estado.^ En la parte superior, la PDA tiene una interfaz para tarjetas de acceso."; ], antes [; Coger : if ( (Dormitorio hasnt general) || ( (Dormitorio has general) && (self in AccesoMina) && (GuardiaAccesoMina hasnt visitado) ) ) "¡¿Y sacársela a ese tipo?! Ni de broma..."; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else { if ((self hasnt general) && (TecnicaSistemas has visitado) ){ give self general; "Se escucha un BIP corto y la PDA expulsa mi tarjeta. La cojo.^ En la pantalla de la PDA aparece algo."; } else "No se escucha nada y la PDA expulsa mi tarjeta. La cojo."; } Leer: if (self hasnt general) "La pantalla está en blanco."; else {; print "La pantalla muestra mi posición actual en el mapa de la Mina."; if (localizacion ofclass Localidad_Mina) {; print " La PDA recomienda"; switch (localizacion){ TiroAscensorAccesoMina: " seguir bajando. Vaya..."; FinTiroAscensorAccesoMina: " salir a la galería principal, al oeste."; GaleriaPrincipalMina: " ir al sur."; GaleriaPrincipalMina2: " ir al sur. Existe una ruta alternativa al oeste, usando las galerías de extracción."; GaleriaPrincipalMina3: " ir al sur. Se puede volver al norte usando una ruta alternativa al oeste, a través de las galerías de extracción."; GaleriaPrincipalMina4: " ir al sur. Existe una ruta alternativa al este, usando las galerías de extracción."; GaleriaPrincipalMina5: " ir al sur. Se puede volver al norte usando una ruta alternativa al este, a través de las galerías de extracción."; GaleriaPrincipalMina6: " ir al oeste. Sólo se puede volver al norte escalando la pendiente."; GaleriaExtraccion1: " ir al norte, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al este."; GaleriaExtraccion2: " ir al oeste, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al este."; GaleriaExtraccion3: " ir al sur, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al oeste."; GaleriaExtraccion4: " ir al sur, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al norte."; GaleriaExtraccion5: " ir al norte, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al oeste."; GaleriaExtraccion6: " ir al norte, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al norte."; GaleriaExtraccion7: " ir al oeste, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al sur."; GaleriaExtraccion8: " ir al norte, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al sur."; GaleriaExtraccion9: " ir al este, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al sur."; GaleriaExtraccion10: " ir al norte, para avanzar hacia el sur de la galería principal. Para volver hacia el norte de la galería principal, ir al este."; default: "... nada. ~No hay datos suficientes.~"; } } else " De momento, estoy fuera del mapa."; } ], has femenino legible oculto; PSI GuardiaAccesoMina "Guardia" AccesoMina with nombre 'guardia' 'espacial', adjetivos 'armado' 'fornido', describir "Frente al portal de seguridad, un guardia armado vigila a los que entran y salen.", descripcion [; print "Es un espacial muy fornido, una masa de músculos, un bruto, un verdadero troglodita... salvo algunos detalles: el rifle táser y una expresión mas bien melancólica."; if ( (Dormitorio hasnt general) || ( (Dormitorio has general) && (self in AccesoMina) && (GuardiaAccesoMina hasnt visitado) ) ) " Lleva una PDA colgando."; ], antes [; Besar, Probar, Follar: "¿¡Con un gorila, y encima armado?! No gracias, no estoy tan desesperado y hay formas menos dolorosas de suicidarse..."; Hablar : if (Dormitorio hasnt general) { if (self hasnt visitado) { give self visitado; HablarGuardiaAccesoMina.proyeccion(); rtrue; } else if (Dormitorio hasnt visitado) "Me dedica una sonrisa cansada y me dice ~No puedo distraerme más, tío, lo siento...~"; else "~¿Ya de vuelta?~ me dice al saludarlo.^^ ~Esto...~, titubeo, ~sí, es que...~^^ El guardia saca una PDA, hace algo con la pantalla y me hace una mueca.^^ ~Tío, cumple tu parte y ya veremos~, me dice mientras guarda la PDA.^^ Me retiro, un poco avergonzado, la verdad..."; } else { if (self hasnt visitado) { give self visitado; move PDA to Jugador; give PDA ~oculto; "Lo saludo con un ~Listo, colega: tu dormitorio ya está presentable.~^^ El guardia saca una PDA, hace algo con la pantalla y me sonríe.^^ ~Hombre, gracias... aquí tienes.~ me contesta, y me pasa la PDA.^^ ~Espero que te sirva~, y con media sonrisa agrega ~¡No bajes sin ella!~^^ Le doy las gracias y lo dejo trabajar."; } else "Me dedica una sonrisa cansada y me dice ~Espero que tengas suerte, tío...~"; } ] has masculino; ! Decoración del Acceso a Mina Decorado_Ampliado DecoradoAccesoMina1 AccesoMina with describir 'portal' "Es un arco frente a los ascensores. Brilla como un espejo, y tiene varias lucecitas aquí y allá... y no están para decoración, seguro: cualquiera que pase a través del portal es analizado y revisado en más formas de las que quiero imaginarme. En un costado tiene una ranura para tarjetas.^ Una grilla láser cubre el espacio del portal: se apaga para dejar pasar a las personas autorizadas y si a los sensores no les gustas, bueno, se enciende la grilla antes de que salgas del portal, y ya está." G_MASCULINO 'lucecitas' "Luces de colores que titilan...^ ...titilan...^^ Mejor miro otra cosa." G_FEMENINO + G_PLURAL 'rifle' "Un rifle para electroshocks. Si te llega a tocar una descarga... bueno, juegas a que eres el hombre de jalea hasta que te despiertas en una celda (si tienes suerte)." G_MASCULINO 'taser' "Thomas A. Swift's Electric Rifle. El inventor del rifle eléctrico le dio el nombre de un tal Tom Swift, un héroe de novelas pulp del siglo XIX...^ Nada, tengo que dejar de leer enciclopedias en mi tiempo libr... bah..." G_MASCULINO 'ascensores' "Son ascensores de modelo industrial." G_MASCULINO + G_PLURAL ; Decorado_Ampliado DecoradoGrillaAccesoMina AccesoMina with antes [; Tocar, Coger, Empujar, Girar : "No gracias... me gustan mis manos y cada uno de sus dedos."; ], describir 'grilla' "Similar a la que está en el control de ingreso a la base, es una redecilla de rayos láser entrecruzados. Pasar a través de ella es una forma rápida de morir y quedar repartido en trocitos pequeños y humeantes." G_FEMENINO 'rayos' "Filamentos láser, de color rojo. No tocar..." G_MASCULINO + G_PLURAL 'laser' "Light Amplification by Stimulated Emission of Radiation, amplificación de luz mediante emisión inducida de radiación...^ Joder, que memorión técnico que soy, tío." G_MASCULINO ; ! Ascensor Acceso Misnas Localidad_Ascensor AscensorAccesoMina "Ascensor: Acceso Minas" with antes [; Ir : if (uno == obj_abajo) { if (AscensorAccesoMinaBaja hasnt general) <>; else { PrintAutoPausa("Las puertas se cierran.^"); PrintAutoPausa("Bajamos...^"); PrintAutoPausa("...^"); PrintAutoPausa("Bajamos...^"); PrintAutoPausa("...^"); PrintAutoPausa("...seguimos bajando...^"); PrintAutoPausa("...^"); PrintAutoPausa("¡¡El ascensor se detiene bruscamente!!^"); ! Presentación Tercer Acto LimpiaPantalla.proyeccion(); box "Acto III: Turismo" "" "~Disfrute trabajando" "en un ambiente seguro~" "" ""; PrintPausa("",0); LimpiaPantalla.proyeccion(); } } ], afuera AccesoMina, al_o AccesoMina, arriba [;<>;], abajo AscensorDetenido ; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorAccesoMinaBaja "Botón Baja" AscensorAccesoMina with antes [; Tocar, Empujar : if (self hasnt general) "Se escuchan dos tonos bajos, y no ocurre nada..."; else <>; ] ; Boton_Ascensor_Sube AscensorAccesoMinaSube "Botón Sube" AscensorAccesoMina; Ranura_Tarjeta RanuraAscensorAccesoMina "Ranura de Ascensor" AscensorAccesoMina with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else if (AscensorAccesoMinaBaja hasnt general) { give AscensorAccesoMinaBaja general; print "Se escucha un BIP corto y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } else { print "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^"; DescripcionExpulsaTarjeta(); rtrue; } ] ; ! Ascensor Detenido Localidad_Ascensor AscensorDetenido "Ascensor: Detenido" with descripcion [; print "El ascensor es de modelo industrial, sin mucho decorado, pero hecho para durar. Por entre la rejilla se ve la roca del asteroide; han excavado el tiro directo en la roca, sin agregar revestimiento alguno. La compañía, economizando como sea y donde sea...^ En un costado del ascensor hay un par de botones direccionales, con una ranura para tarjetas de acceso... y debajo, se ha abierto un panel de la pared y se ve un compartimiento."; if ((AgujeroAbajoAscensorDetenido has abierto) && (AgujeroArribaAscensorDetenido has abierto)) "^Hay agujeros cortados en el techo y el suelo del ascensor."; else if ((AgujeroAbajoAscensorDetenido has abierto) && (AgujeroArribaAscensorDetenido hasnt abierto)) "^Hay un agujero cortado en el suelo del ascensor."; else if ((AgujeroAbajoAscensorDetenido hasnt abierto) && (AgujeroArribaAscensorDetenido has abierto)) "^Hay un agujero cortado en el techo del ascensor."; ], antes [; Ir : if ( (uno == obj_arriba) && (AgujeroArribaAscensorDetenido has abierto) ) "¿Para qué? Mi misión es abajo, en las minas..."; else if (uno == obj_abajo) { if (AgujeroAbajoAscensorDetenido has abierto) { if ((EstacionRV has general) && (TrajeMinero hasnt puesto) && (TrajeMinero in Jugador) && (TrajeMinero hasnt visitado)) { give TrajeMinero visitado; "Mejor me pongo el traje minero antes. Se supone que el ambiente allá abajo es un poco... corrosivo."; } } else <>; } Escuchar : if (uno==0) "Nada, apenas mi respiración. Este trasto ya no funciona."; Oler : if (uno==0) "No huelo nada... salvo mi propio olor."; Examinar: if (uno == obj_abajo) {; print "El suelo está hecho de rejilla metálica reforzada. "; if (AgujeroAbajoAscensorDetenido has abierto) <>; else rtrue; } if (uno == obj_arriba) {; print "El techo está hecho de rejilla metálica reforzada. "; if (AgujeroArribaAscensorDetenido has abierto) <>; else rtrue; } ], arriba [;<>;], abajo TiroAscensorAccesoMina; ! Objetos del Ascensor Boton_Ascensor_Baja AscensorDetenidoBaja "Botón Baja" AscensorDetenido with antes [; Tocar, Empujar : "Se escuchan dos tonos bajos, y no ocurre nada...^ Esto no va ni arriba ni abajo. Mejor me busco la manera de salir por mis propios medios... de una buena vez."; ]; Boton_Ascensor_Sube AscensorDetenidoSube "Botón Sube" AscensorDetenido with antes [; Tocar, Empujar : "Se escuchan dos tonos bajos, y no ocurre nada...^ Esto no va ni arriba ni abajo. Mejor me busco la manera de salir por mis propios medios... de una buena vez."; ]; Ranura_Tarjeta RanuraAscensorDetenido "Ranura de Ascensor" AscensorDetenido with antes [; Recibir : if (uno ~= TarjetaJugador) "No. No entra..."; else "No se escucha nada y la ranura expulsa mi tarjeta. La cojo.^ Esto no va ni arriba ni abajo. Mejor me busco la manera de salir por mis propios medios... de una buena vez."; ]; Objeto_Escenario CompartimientoAscensorDetenido "compartimiento" AscensorDetenido with nombre 'compartimiento', adjetivos 'cuadrado', descripcion [; print "Es un compartimiento cuadrado y poco profundo, iluminado apenas por la luz del ascensor.^"; if (SopleteLaser in self) print "Parece haber algo dentro...^"; "Bajo el compartimiento, cuelga el panel que lo mantenía cerrado."; ], antes [; Meter : "No me gusta dejar cosas en los ascensores: uno se descuida y se van entre la rejilla del suelo y luego no hay como recuperarlas. Además, los de mantenimiento son unos ladrones..."; Cerrar : "Trato de cerrar el compartimiento, pero el panel no se sujeta y vuelve a caer."; ], has masculino recipiente abrible abierto; Objeto_Escenario PanelAscensorDetenido "panel" AscensorDetenido with nombre 'panel', adjetivos 'cuadrado', descripcion "Es un panel cuadrado de la pared, que ocultaba el compartimiento.", antes [; Empujar, Cerrar : <>; ], has masculino abrible abierto; Object SopleteLaser "soplete láser" CompartimientoAscensorDetenido with nombre 'soplete', adjetivos 'laser', descripcion "Es un soplete láser; puede cortar cualquier cosa: metal, rejilla reforzada, gente... lo único que se le resiste es la roca del asteroide. A fin de cuentas, no es una herramienta de minería.", reaccionar_antes [; Cortar : if ((self in Jugador) && (otro == self)) { if (self hasnt encendido) "El soplete está apagado y no hace nada de nada..."; else if ( ( (uno == obj_abajo) && (localizacion == AscensorDetenido) ) || (uno == AgujeroAbajoAscensorDetenido) ){ if (AgujeroAbajoAscensorDetenido has abierto) "¿Para qué? No es necesario ensanchar más el agujero."; else { give AgujeroAbajoAscensorDetenido abierto; "Con cuidado, corto la rejilla del suelo del ascensor y abro un agujero de mi porte."; } } if ( ( (uno == obj_arriba) && (localizacion == AscensorDetenido) ) || (uno == AgujeroArribaAscensorDetenido) ){ if (AgujeroArribaAscensorDetenido has abierto) "¿Para qué? No es necesario ensanchar más el agujero."; else { give AgujeroArribaAscensorDetenido abierto; "Con cuidado, corto la rejilla del techo del ascensor y abro un agujero de mi porte."; } } else if (uno == PuertasTiroAscensor) { if (PuertasTiroAscensor has abierto) "¿Para qué? Ya están abiertas."; else { give PuertasTiroAscensor abierto; move AgujeroFinTiroAscensor to FinTiroAscensorAccesoMina; move AgujeroGaleriaPrincipalMina to GaleriaPrincipalMina; "Con cuidado, corto las puertas del tiro del ascensor y abro un agujero de mi porte."; } } else if (uno == BarrasMetalicasLargas) { if (BarrasMetalicasLargas has general) "Tendría que sacarlas de encima de la zanja primero."; else if (BarrasMetalicasCortas in Limbo) { move BarrasMetalicasCortas to localizacion; "Con cuidado, corto una de las barras largas y hago de ella una buena cantidad de barras cortas."; } else "Ya hice un buen lote de barras cortas. Mejor conservar el equipamiento que tengo a mano."; } else if (uno == BarrasMetalicasCortas) { "Mejor que no. Si las sigo cortando, voy a terminar teniendo clavos..."; } else if ( (uno == PuertaVehiculo) || (uno == VehiculoProspeccion) ) { if (PuertaVehiculo has abierto) "¿Para qué? Ya puedo entrar y salir sin problemas..."; else { give PuertaVehiculo abierto; give VehiculoProspeccion abierto; move AgujeroPuertaVehiculo to FinGaleriaNueva; "Con cuidado, corto la puerta del vehículo y abro un agujero de mi porte."; } } else if ( (uno==Flores) || (uno==EspacialesFinGaleriaNueva) || (uno==FlorPequena) || (uno==DecoradoFloresFinGaleriaNueva) ) { if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else { if (uno ~= FlorPequena) PrintAutoPausa("Al acercar el soplete para iniciar el corte, una de las venillas de las flores se extiende y toca la boca del soplete."); MuerteIncendioFlores.proyeccion(); banderafin = 1; rtrue; } } else "Mejor que no. Con este aparato no se juega..."; } else "No puedo hacer éso sólo con mis manos..."; ], has masculino conmutable; Objeto_Escenario AgujeroAbajoAscensorDetenido "agujero abajo" AscensorDetenido with nombre 'agujero', nombre_mp 'bordes', adjetivos 'suelo' 'abajo' 'circular', descripcion [; if (self hasnt abierto) "No veo eso que dices."; else "Hay un agujero más o menos circular, cortado en el suelo del ascensor"; ], antes [; Cortar, Abrir, QuitarCerrojo : if ( (uno == SopleteLaser) || (SopleteLaser in Jugador) ) <>; else "¿Y cómo demonios hago eso, con las manos?"; Tocar : "Los bordes están tibios aún."; Entrar, Meterse : if (self has abierto) <>; else "¿Por dónde?..."; ], has masculino entrable abrible ~abierto escenario; Objeto_Escenario AgujeroArribaAscensorDetenido "agujero arriba" AscensorDetenido with nombre 'agujero', nombre_mp 'bordes', adjetivos 'techo' 'arriba' 'circular', descripcion "Hay un agujero más o menos circular, cortado en el techo del ascensor", antes [; Cortar, Abrir, QuitarCerrojo : if ( (uno == SopleteLaser) || (SopleteLaser in Jugador) ) <>; else "¿Y cómo demonios hago eso, con las manos?"; Tocar : "Los bordes están tibios aún."; Entrar, Meterse : if (self has abierto) <>; else "¿Por dónde?..."; ], has masculino entrable abrible ~abierto escenario; ! ZONA DE MINA !Clase para localidades de Zona de Mina Class Localidad_Mina class Habitacion with antes [; Escuchar : if (uno==0) "Dentro del traje de minero, solo oigo mi respiración."; Oler : if (uno==0) { "No huelo nada... salvo mi propio olor."; }; Examinar : if (uno == obj_abajo) "El suelo de la mina está hecho de roca apisonada."; if (uno == obj_arriba) "El techo de la mina es roca en bruto."; ], no_puedes_ir "Desorientado, doy tumbos como un novato..." ; ! Decoración de la Zona de Operaciones Decorado_Ampliado DecoradoZonaMina Localidad_Mina with esta_en [; if (localizacion ofclass Localidad_Mina) return true; else return false; ], describir 'asteroide' "Una masa de roca flotante, de considerables dimensiones, flotando en el... joder, tío, que es donde estoy casi enterrado, ahora mismo." G_FEMENINO 'roca' "La roca en bruto del asteroide, de color parduzco, apenas tallada a golpes." G_FEMENINO 'pared' DescripcionParedesMina G_FEMENINO 'paredes' DescripcionParedesMina G_FEMENINO + G_PLURAL 'muros' DescripcionParedesMina G_MASCULINO + G_PLURAL 'muro' DescripcionParedesMina G_MASCULINO 'luces' "Unos focos pequeños, ubicados a intervalos regulares en las paredes, arriba y abajo. Emiten apenas algo de luz." G_FEMENINO + G_PLURAL 'luz' "Amarillenta y escasa.^ Apenas permite moverse." G_FEMENINO ; [DescripcionParedesMina; return "Las paredes son de roca del asteroide. Tiene algunas luces aquí y allá."; ]; ! Creamos un objeto para que reaccione a <>> Objeto_Localidad ObjetoLocalidadMina "localidad de la mina" with nombre_m 'tiro', nombre_f 'galeria' 'caverna' 'cueva', adjetivos 'ascensor' 'acceso' 'mina' 'principal' 'extraccion' 'nueva', descripcion [; np = 2; switch (SiguientePalabra()) { 'caverna' : <>; 'cueva' : <>; 'tiro' : if ( (localizacion == TiroAscensorAccesoMina) || (localizacion == FinTiroAscensorAccesoMina) ) {;<>;} else "No veo eso que dices."; 'galeria' : if ( (localizacion ~= TiroAscensorAccesoMina) && (localizacion ~= FinTiroAscensorAccesoMina) ) {;<>;} else "No veo eso que dices."; default : "No veo eso que dices."; }; ], esta_en [; if (localizacion ofclass Localidad_Mina) return true; else return false; ] has femenino; ! Tiro del Ascensor Localidad_Mina TiroAscensorAccesoMina "Tiro del Ascensor" with descripcion [; if (self hasnt visitado) { tiro = 1; give self visitado; } print "Estoy aferrado a la escalera de servicio del tiro del ascensor... "; switch (tiro){ 1: print "que está justo sobre mí.^ Hay un buen trecho de descenso hacia abajo."; 2: print "que está un poco más arriba sobre mí.^ Queda poco más de la mitad de la distancia de descenso."; 3: print "que está bastante más arriba sobre mí.^ Queda apenas poco de escalera que descender."; } if (TrajeMinero hasnt puesto) { PrintAutoPausa("^"); PrintAutoPausa("Miro a mi alrededor..."); PrintAutoPausa(" pero algo no va bien."); MuerteTrajeMinero.proyeccion(); banderafin = 1; rtrue; } else rtrue; ], antes [; Saltar : "¿¡Y tirarme al vacío?! Ni mamado..."; Examinar: if (uno == obj_abajo) "Por lo que puedo ver a esta distancia, me parece que el suelo sería de roca de asteroide."; if (uno == obj_arriba){ if (tiro == 1) "Sobre mi está el ascensor."; else "Más arriba, se distingue vagamente el ascensor."; } ], abajo [; if (tiro == 3) { if (self hasnt general) { give self general; PrintAutoPausa("La escalera no llega al suelo.^^"); PrintAutoPausa("¡Mierda!^^"); PrintAutoPausa("La compañía, tratando de ahorrar como sea y donde sea.^"); PrintAutoPausa("En fin, no es una gran caída..."); PrintAutoPausa(" así que me dejo caer.^"); } else PrintAutoPausa("La escalera no llega al suelo... así que me dejo caer.^"); JugadorA(FinTiroAscensorAccesoMina); rtrue; } else { tiro = tiro + 1; JugadorA(self); rtrue; } ], arriba [; if (tiro == 1) { JugadorA(AscensorDetenido); rtrue; } else { tiro = tiro - 1; JugadorA(self); rtrue; } ], no_puedes_ir "No hay salidas, salvo subir o bajar... "; ! Objetos del Tiro del ascensor Objeto_Ascensor ObjAscensorTiroAscensor "ascensor industrial" TiroAscensorAccesoMina with descripcion "Es un ascensor de modelo industrial, con un agujero.", antes [; Meterse : if (tiro == 1) <>; else "Está más arriba... habría que subir..."; ]; Objeto_Escenario AgujeroTiroAscensor "agujero en el ascensor" TiroAscensorAccesoMina with nombre 'agujero', nombre_mp 'bordes', adjetivos 'ascensor' 'circular', descripcion "Hay un agujero más o menos circular, cortado en el ascensor", antes [; Entrar, Meterse : if (tiro == 1) <>; else "Está más arriba... habría que subir..."; Tocar : if (tiro == 1) "Los bordes están tibios aún."; else "Está más arriba... habría que subir..."; ], has masculino entrable; ! Decoración del Tiro del ascensor Decorado_Ampliado DecoradoTiroAscAccesoMina TiroAscensorAccesoMina with describir 'tiro' "El espacio que han cavado en la roca es apenas el justo para que quepa el ascensor y la escalera. Si fuera turista, no le tomaría fotos." G_MASCULINO 'escalera' "Una escalera metálica reforzada, para mantenimiento... y casos de emergencia.^ Emite una luz lechosa y prefiero no imaginarme cómo; no hay luces en la escalera." G_FEMENINO ; ! Fin del Tiro del Ascensor Localidad_Mina FinTiroAscensorAccesoMina "Tiro del Ascensor" with descripcion "Estoy en la base del tiro del ascensor... y la escalera apenas alcanza para llegar al suelo. A un costado, al oeste, puedo ver las puertas del tiro del ascensor.", antes [; Saltar : PrintAutoPausa("Con un buen salto me logro aferrar de la jodida escalera y empiezo a subir...^"); JugadorA(TiroAscensorAccesoMina); rtrue; Examinar: if (uno == obj_arriba) "Más arriba, se distingue vagamente el ascensor."; ], abajo "Ya estoy en el nivel más abajo del ducto y no hay a donde más bajar...^ Por suerte...", arriba "No alcanzo la escalera desde aquí; la condenada está muy alta...", afuera PuertasTiroAscensor, al_o [;<>;], no_puedes_ir "Sólo puedes salir, subir o bajar.."; ! Objetos del Fin del Tiro del ascensor Objeto_Ascensor ObjAscensorFinTiroAscensor "ascensor industrial" FinTiroAscensorAccesoMina with descripcion "Es un ascensor de modelo industrial, con un agujero.", antes [; Meterse : "Está más arriba... habría que subir..."; ]; Conexion PuertasTiroAscensor "puertas del tiro del ascensor" with nombre 'puertas' 'compuertas', adjetivos 'ascensor', descripcion [; print "Son las puertas del tiro del ascensor. "; if (self hasnt abierto) print "Están cerradas."; else if (self has general) print "Hay un agujero más o menos circular, cortado en medio de las puertas."; else print "Están semi abiertas, lo suficiente para pasar."; if (localizacion == FinTiroAscensorAccesoMina) "^A un costado, en la pared, hay una palanca metálica."; else rtrue; ], antes [; Cerrar : if (self hasnt abierto) "Ya están cerradas."; else "Intento cerrarlas, pero no logro moverlas ni un centímetro."; Abrir : if (self hasnt abierto) "Intento abrirlas, pero no logro moverlas ni un centímetro."; else "Ya están abiertas."; ], has femenino escenario abrible ~abierto; Objeto_Escenario PalancaTiroAscensor "palanca metálica" FinTiroAscensorAccesoMina with nombre 'palanca', adjetivos 'metalica', descripcion [; print "Es una palanca metálica en una pared al costado de las puertas del tiro del ascensor. "; if (self hasnt general) "La palanca apunta hacia arriba."; else "La palanca apunta hacia abajo."; ], antes [; Tirar, Empujar, Girar: if (self hasnt general) { print "Tiro de la palanca, bajándola..."; give self general; if (PuertasTiroAscensor hasnt abierta) { give PuertasTiroAscensor abierta; " y las puertas se abren lo suficiente para poder pasar entre ellas."; } else " pero no ocurre nada."; } else "Trato de mover la palanca, pero no lo consigo."; ], has femenino; Objeto_Escenario AgujeroFinTiroAscensor "agujero en las puertas del tiro del ascensor" Limbo with nombre 'agujero', nombre_mp 'bordes', adjetivos 'puertas' 'circular', descripcion "Hay un agujero más o menos circular, cortado en las puertas del tiro del ascensor.", antes [; Entrar, Meterse : <>; Tocar : "Los bordes están tibios aún."; ], has masculino entrable; ! Decoración del Fin del Tiro del ascensor Decorado_Ampliado DecoradoFinTiroAscAccesoMina FinTiroAscensorAccesoMina with describir 'tiro' "El espacio que han cavado en la roca es apenas el justo para que quepa el ascensor y la escalera. Si fuera turista, no le tomaría fotos." G_MASCULINO 'escalera' "Una escalera metálica reforzada, para mantenimiento... y casos de emergencia.^ Emite una luz lechosa y prefiero no imaginarme cómo; no hay luces en la escalera." G_FEMENINO ; ! Inicio de Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina "Galería Principal de la Mina" with descripcion_larga "Estoy al inicio de la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur: el techo no es muy alto... y está abarrotada y bullente de actividad.^ A un costado puedo ver elevadores de mineral y algunos espaciales cargándolos antes de hacerlos subir llenos, rumbo al área de procesamiento.^ Al este, veo el tiro por donde llegué.", descripcion_corta "Estoy al inicio de la galería principal de la mina, que va de norte a sur. Es baja y bastante ancha. Al este, veo el tiro por donde llegué.", adentro PuertasTiroAscensor, al_e [;<>;], al_s GaleriaPrincipalMina2; ! Objetos de Galería Principal de la Min Objeto_Escenario AgujeroGaleriaPrincipalMina "agujero en las puertas del tiro del ascensor" Limbo with nombre 'agujero', nombre_mp 'bordes', adjetivos 'puertas', descripcion "Hay un agujero más o menos circular, cortado en las puertas del tiro del ascensor.", antes [; Entrar, Meterse : <>; Tocar : "Los bordes están tibios aún."; ], has masculino entrable; ! Decoración de Galería Principal de la Min Decorado_Ampliado DecoradoGaleriaPrincipalMina GaleriaPrincipalMina with antes [; Tocar, Coger, Empujar: "Mejor no arriesgarme; aquí un accidente puede salir caro, si no fatal."; ], describir 'tiro' "El espacio que han cavado en la roca para que quepa el ascensor. Si fuera turista, no le tomaría fotos." G_MASCULINO 'mineral' "Son grandes trozos del asteroide, sacados de este sector de la base." G_MASCULINO 'elevadores' "Son unas cajas metálicas, que transportan el material en bruto. Salen del suelo, y se pierden en el techo." G_MASCULINO + G_PLURAL 'trajes' "Son monos de minero, muy parecidos al que traigo puesto." G_MASCULINO + G_PLURAL ; Decorado_Espaciales EspacialesGaleriaPrincipalMina "Espaciales" GaleriaPrincipalMina with describir "Varios espaciales están esperando frente a otro tiro de ascensor, haciendo fila para volver al área de operaciones. Intento no molestar a los espaciales... a los ocupados y a los que esperan.", descripcion "Son unos tipos muy fornidos, vestidos con trajes de minero... y salvo los que están cargando mineral, no se mueven de su sitio. Agotamiento, supongo..." ; ! Segunda Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina2 "Galería Principal de la Mina" with descripcion "Estoy en la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur. El techo no es muy alto. Al oeste, veo una galería de extracción. Se puede regresar por la galería al norte, mientras que al sur la galería sigue en descenso con una fuerte pendiente.", antes [; Ir : if (uno == obj_s) { if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Es fácil derrapar sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ){ PrintAutoPausa("^"); PrintAutoPausa("Empiezo a bajar por la pendiente..."); PrintAutoPausa(" pero algo no va bien."); MuerteDerrape.proyeccion(); MuerteTrajeMinero.proyeccion(); banderafin = 1; rtrue; } } ], al_n GaleriaPrincipalMina, al_o GaleriaExtraccion1, al_s GaleriaPrincipalMina3 ; ! Primer Laberinto de Galerías de Extracción Class Galeria_Extraccion class Localidad_Mina with descripcion "Estoy en una de las galerías de extracción de minerales. Es muy estrecha y las paredes se cortan en ángulos muy irregulares.^ Hay salidas en todas direcciones... es un lío." ; Galeria_Extraccion GaleriaExtraccion1 "Galería de Extracción" with al_n GaleriaExtraccion3, al_s GaleriaExtraccion4, al_e GaleriaPrincipalMina2, al_o GaleriaExtraccion4 ; Galeria_Extraccion GaleriaExtraccion2 "Galería de Extracción" with al_n GaleriaExtraccion2, al_s GaleriaExtraccion4, al_e GaleriaExtraccion1, al_o GaleriaPrincipalMina3 ; Galeria_Extraccion GaleriaExtraccion3 "Galería de Extracción" with al_n GaleriaExtraccion3, al_s GaleriaExtraccion2, al_e GaleriaExtraccion4, al_o GaleriaExtraccion1 ; Galeria_Extraccion GaleriaExtraccion4 "Galería de Extracción" with al_n GaleriaExtraccion1, al_s GaleriaExtraccion3, al_e GaleriaExtraccion4, al_o GaleriaExtraccion3 ; ! Tercera Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina3 "Galería Principal de la Mina" with descripcion "Estoy en la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur. El techo no es muy alto. Al este, veo una galería de extracción. Para volver al norte hay que escalar un pendiente muy inclinada, mientras que al sur la galería sigue.", antes [; Ir : if (uno == obj_n) { if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Es fácil derrapar sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ) { "Trato de subir la cuesta, pero resbalo sin apenas avanzar."; } } ], al_n GaleriaPrincipalMina2, al_e GaleriaExtraccion2, al_s GaleriaPrincipalMina4; ! Cuarta Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina4 "Galería Principal de la Mina" with descripcion "Estoy en la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur. El techo no es muy alto. Al este, veo una galería de extracción. Se puede regresar por la galería al norte, mientras que al sur la galería sigue... a no ser por una zanja enorme que corta el paso.", antes [; Ir : if (uno == obj_s) { if (BarrasMetalicasLargas has general) { if (BarrasMetalicasCortas has general) { print "Caminando sobre el puente improvisado, cruzo encima de la zanja.^"; move BarrasMetalicasLargas to GaleriaPrincipalMina5; move BarrasMetalicasCortas to GaleriaPrincipalMina5; } else "Las barras largas no permiten caminar sobre ellas con seguridad. Resbalar no cuesta nada..."; } else "En esa dirección sólo me espera una caída."; } ], al_n GaleriaPrincipalMina3, al_e GaleriaExtraccion5, al_s GaleriaPrincipalMina5 ; ! Objetos de Galería Principal de la Mina 4 Objeto_Escenario ZanjaGaleriaPrincipalMina4 "zanja profunda" GaleriaPrincipalMina4 with nombre 'zanja', adjetivos 'profunda' 'ancha', descripcion "Es una zanja, producto de algún derrumbe. Es muy profunda (no se ve el fondo) y lo bastante ancha como para que no se pueda cruzar caminando; va de pared a pared. No habrán querido repararla debido a que toda la mina está interconectada por las galerías de extracción... y porque la compañía, si no tiene que hacer reparaciones, no las hace.", antes [; Entrar, Meterse : if ( (BarrasMetalicasLargas has general) && (BarrasMetalicasCortas has general) ) <>; else if ( (BarrasMetalicasLargas has general) && (BarrasMetalicasCortas hasnt general) ) <>; else { MuerteBajarZanja.proyeccion(); banderafin = 1; rtrue; } SaltarSobre : if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Aunque logre saltar la zanja, derraparía al otro lado sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ) { MuerteDerrapeSalto.proyeccion(); banderafin = 1; rtrue; } else { print "De un buen salto, logro cruzar la zanja.^"; if (BarrasMetalicasLargas has general) { move BarrasMetalicasLargas to GaleriaPrincipalMina5; if (BarrasMetalicasCortas has general) move BarrasMetalicasCortas to GaleriaPrincipalMina5; } JugadorA(GaleriaPrincipalMina5); rtrue; } ], has femenino; Object BarrasMetalicasLargas "barras metálicas largas" GaleriaPrincipalMina4 with nombre_fp 'barras', nombre_f 'barra', nombre_m 'puente', adjetivos 'metalica' 'larga' 'metalicas' 'largas' 'improvisado', describir [; print "Hay unas barras metálicas largas "; if (self hasnt general) print "en el suelo. "; else print "tendidas sobre la zanja. "; if (BarrasMetalicasCortas has general) { print "Sobre éstas hay unas barras más cortas"; if (self has general) ", formando un puente improvisado."; else "."; } else rtrue; ], descripcion [;print "Son "; if (BarrasMetalicasCortas in Limbo) print "tres "; else print "dos "; print "barras metálicas largas, para labores de mantenimiento."; if (self has general) print " Están tendidas de un lado a otro de la zanja."; else print " Son más bien delgadas pero se ven sólidas."; if (self hasnt visitado){ give self visitado; " Probablemente las dejaron aquí para iniciar la reparación de la zanja, pero se ve que no han avanzado mucho."; } else rtrue; ], antes [; Meterse: if (self hasnt general) "No puedo intentar cruzar por ellas si no están sobre la zanja..."; else if (localizacion == GaleriaPrincipalMina4) <>; else <>; PonerSobre : if ( (otro==ZanjaGaleriaPrincipalMina4) || (otro==ZanjaGaleriaPrincipalMina5) ) if (self hasnt general) { if (BarrasMetalicasCortas has general) "Primero debo sacar de encima las barras cortas."; else { move self to localizacion; give self general; "Con cuidado, pongo las barras largas sobre la zanja, una al lado de la otra. Quedan bien apoyadas y la cruzan de lado a lado."; } } else "Ya están puestas..."; EmpujarDir, Meter: if ( (otro==obj_s) && (localizacion==GaleriaPrincipalMina4) ) { move self to localizacion; <>; } else if ( (otro==obj_n) && (localizacion==GaleriaPrincipalMina5) ) { move self to localizacion; <>; } else if ( ( (otro==obj_n) && (localizacion==GaleriaPrincipalMina4) ) || ( (otro==obj_s) && (localizacion==GaleriaPrincipalMina5) ) ) { if (self has general) <>; else <>; } else <>; Tirar, Empujar : if (BarrasMetalicasCortas has general) "Primero debo sacar de encima las barras cortas."; else { move self to localizacion; give self ~general; "Las levanto con cuidado. Pesan bastante..."; } Coger : move self to localizacion; "Pesan demasiado para andar con ellas de un sitio a otro."; ], has femenino nombreplural entrable; Object BarrasMetalicasCortas "barras metálicas cortas" Limbo with nombre 'barras', adjetivos 'metalicas' 'cortas', describir [; if (self hasnt general) print "Hay unas barras metálicas cortas en el suelo. "; else print ""; rtrue; ], descripcion [;print "Son unas barras metálicas cortas"; if (self has general) " y están puestas sobre las barras largas, alternadas cada par de pasos."; else ", cortadas a partir de una barra larga. Son como un décimo del largo de una barra larga."; ], antes [; PonerSobre : if ( (otro==ZanjaGaleriaPrincipalMina4) || (otro==ZanjaGaleriaPrincipalMina5) ) "Mejor que no. Son muy pequeñas y se caerían al fondo."; else if (otro==BarrasMetalicasLargas) if (BarrasMetalicasLargas hasnt general) "No sirve de nada apilarlas así en el suelo..."; else if (self hasnt general) { move self to localizacion; give self general; "Con cuidado, pongo las barras cortas sobre las largas, avanzando sobre la zanja a medida que las voy colocando. Quedan bien apoyadas y consigo así un puente improvisado."; } else "Ya están puestas..."; EmpujarDir, Meter: if ( (otro==obj_s) && (localizacion==GaleriaPrincipalMina4) ) { move self to localizacion; <>; } else if ( (otro==obj_n) && (localizacion==GaleriaPrincipalMina5) ) { move self to localizacion; <>; } else if ( ( (otro==obj_n) && (localizacion==GaleriaPrincipalMina4) ) || ( (otro==obj_s) && (localizacion==GaleriaPrincipalMina5) ) ) { if (self has general) <>; else <>; } else <>; Tirar, Empujar : if (self has general) { move self to localizacion; give self ~general; "Caminando sobre las que aun están puestas, voy retirándolas una por una."; } else <>; Coger : move self to localizacion; "Pesan demasiado para andar con ellas de un sitio a otro."; ], has femenino nombreplural; ! Segundo Laberinto de Galerías de Extracción Galeria_Extraccion GaleriaExtraccion5 "Galería de Extracción" with antes [; Ir : if (uno == obj_o) { if (BarrasMetalicasLargas has general) { move BarrasMetalicasLargas to GaleriaPrincipalMina4; if (BarrasMetalicasCortas has general) move BarrasMetalicasCortas to GaleriaPrincipalMina4; } } ], al_n GaleriaExtraccion9, al_s GaleriaExtraccion6, al_e GaleriaExtraccion5, al_o GaleriaPrincipalMina4 ; Galeria_Extraccion GaleriaExtraccion6 "Galería de Extracción" with al_n GaleriaExtraccion8, al_s GaleriaExtraccion6, al_e GaleriaExtraccion10, al_o GaleriaExtraccion6 ; Galeria_Extraccion GaleriaExtraccion7 "Galería de Extracción" with antes [; Ir : if (uno == obj_o) { if (BarrasMetalicasLargas has general) { move BarrasMetalicasLargas to GaleriaPrincipalMina5; if (BarrasMetalicasCortas has general) move BarrasMetalicasCortas to GaleriaPrincipalMina5; } } ], al_n GaleriaExtraccion9, al_s GaleriaExtraccion6, al_e GaleriaExtraccion10, al_o GaleriaPrincipalMina5 ; Galeria_Extraccion GaleriaExtraccion8 "Galería de Extracción" with al_n GaleriaExtraccion9, al_s GaleriaExtraccion5, al_e GaleriaExtraccion6, al_o GaleriaExtraccion8 ; Galeria_Extraccion GaleriaExtraccion9 "Galería de Extracción" with al_n GaleriaExtraccion9, al_s GaleriaExtraccion6, al_e GaleriaExtraccion7, al_o GaleriaExtraccion8 ; Galeria_Extraccion GaleriaExtraccion10 "Galería de Extracción" with al_n GaleriaExtraccion9, al_s GaleriaExtraccion10, al_e GaleriaExtraccion6, al_o GaleriaExtraccion7 ; ! Quinta Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina5 "Galería Principal de la Mina" with descripcion "Estoy en la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur. El techo no es muy alto. Al este, veo una galería de extracción. Para seguir al sur hay que bajar un pendiente muy inclinada, mientras que se puede volver por la galería al norte... a no ser por una zanja enorme que corta el paso.", antes [; Ir : if (uno == obj_s) { if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Es fácil derrapar sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ) { PrintAutoPausa("^"); PrintAutoPausa("Empiezo a bajar por la pendiente..."); PrintAutoPausa(" pero algo no va bien."); MuerteDerrape.proyeccion(); MuerteTrajeMinero.proyeccion(); banderafin = 1; rtrue; } } else if (uno == obj_n) { if (BarrasMetalicasLargas has general) { if (BarrasMetalicasCortas has general) { print "Caminando sobre el puente improvisado, cruzo encima de la zanja.^"; move BarrasMetalicasLargas to GaleriaPrincipalMina4; move BarrasMetalicasCortas to GaleriaPrincipalMina4; } else "Las barras largas no permiten caminar sobre ellas con seguridad. Resbalar no cuesta nada..."; } else "En esa dirección sólo me espera una caída."; } ], al_s GaleriaPrincipalMina6, al_e GaleriaExtraccion7, al_n GaleriaPrincipalMina4 ; ! Objetos de Galería Principal de la Mina 5 Objeto_Escenario ZanjaGaleriaPrincipalMina5 "zanja profunda" GaleriaPrincipalMina5 with nombre 'zanja', adjetivos 'profunda' 'ancha', descripcion "Es una zanja, producto de algún derrumbe. Es muy profunda (no se ve el fondo) y lo bastante ancha como para que no se pueda cruzar caminando; va de pared a pared. No habrán querido repararla debido a que toda la mina está interconectada por las galerías de extracción... y porque la compañía, si no tiene que hacer reparaciones, no las hace.", antes [; Entrar, Meterse : if ( (BarrasMetalicasLargas has general) && (BarrasMetalicasCortas has general) ) <>; else if ( (BarrasMetalicasLargas has general) && (BarrasMetalicasCortas hasnt general) ) <>; else { MuerteBajarZanja.proyeccion(); banderafin = 1; rtrue; } SaltarSobre : if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Aunque logre saltar la zanja, derraparía al otro lado sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ) { MuerteDerrapeSalto.proyeccion(); banderafin = 1; rtrue; } else { print "De un buen salto, logro cruzar la zanja.^"; if (BarrasMetalicasLargas has general) { move BarrasMetalicasLargas to GaleriaPrincipalMina4; if (BarrasMetalicasCortas has general) move BarrasMetalicasCortas to GaleriaPrincipalMina4; } JugadorA(GaleriaPrincipalMina4); rtrue; } ], has femenino; Object GramponesViejos "grampones metálicos viejos" GaleriaPrincipalMina5 with nombre 'grampones', adjetivos 'metalicos' 'viejos', describir "Alguien abandonó aquí unos grampones viejos.", descripcion [; print "Son grampones metálicos antideslizantes "; if (self has puesto) "y se ajustan bien a las botas del traje."; else " para evitar deslizamientos en terrenos escarpados, aunque no son para escaladas verticales. Se ve que tienen bastante uso."; ], antes [; Oler : if (self has puesto) "No llego a sentirles el olor."; else "Huelen a metal..."; Vestir : if (TrajeMinero hasnt puesto) "Primero me tengo que poner el traje minero."; else { if (Grampones has puesto) "Ya tienes puestos unos grampones."; else { give self puesto; "Los pongo en el suelo y al pisarlos se ajustan perfectamente a las botas."; } } Dejar, Desvestir : if ((EstacionRV has general) && (self hasnt visitado) && (localizacion ofclass Localidad_Mina) ) { give self visitado; "Mejor me los dejo puestos. Es fácil derrapar sin ellos."; } else if (self has puesto) { give self ~puesto; "Me saco los grampones con cuidado."; } else {; move self to localizacion; "Dejado."; } ], has masculino nombreplural prenda ~puesto; ! Sexta Galería Principal de la Mina Localidad_Mina GaleriaPrincipalMina6 "Galería Principal de la Mina" with descripcion "Estoy al final de la galería principal de la mina. Es una caverna larga y bastante ancha, que va de norte a sur. El techo no es muy alto. Al oeste, veo una galería nueva, a juzgar por lo irregular del suelo; poca gente ha pasado por aquí. Para volver al norte hay que escalar un pendiente muy inclinada.", antes [; Ir : if (uno == obj_n) { if ( (EstacionRV has general) && (Grampones in jugador) && (Grampones hasnt puesto) && (Grampones hasnt visitado) ) { give Grampones visitado; "Mejor me pongo los grampones. Es fácil derrapar sin ellos."; } else if ( (Grampones hasnt puesto) && (GramponesViejos hasnt puesto) ) { "Trato de subir la cuesta, pero resbalo sin apenas avanzar."; } } ], al_n GaleriaPrincipalMina5, al_o GaleriaNueva ; ! Galeria Nueva Localidad_Mina GaleriaNueva "Galería Nueva" with descripcion [; if (self hasnt visitado) { galeria = 1; give self visitado; } print "Estoy en una galería nueva de la mina, no mucho más ancha que la galería principal, "; switch (galeria){ 1: print " que está justo al este. Hay un buen trecho de la galería al oeste."; 2: print " que está un poco más al este. Queda poco más de la mitad de la galería al oeste."; 3: print " que está bastante más hacia el este. Queda apenas poco de la galería al oeste."; } rtrue; ], antes [; Examinar: if (uno == obj_abajo) "El suelo de la mina está hecho de roca, pero apenas ha sido pisada y resulta bastante irregular."; ], al_o [; if (galeria == 3) { if (self hasnt general) { give self general; LlegadaFinGaleriaNueva.proyeccion(); } JugadorA(FinGaleriaNueva); rtrue; } else { galeria = galeria + 1; JugadorA(self); rtrue; } ], al_e [; if (galeria == 1) { JugadorA(GaleriaPrincipalMina6); rtrue; } else { galeria = galeria - 1; JugadorA(self); rtrue; } ], no_puedes_ir "No hay salidas, salvo seguir al oeste o volver al este..."; ! Fin Galeria Nueva Localidad_Mina FinGaleriaNueva "El Final de la Galería Nueva" with irrelevante 'instrumentos', descripcion_larga "Estoy al final de la galería nueva... frente ante a un espectáculo más bien chocante.^ En un costado, un vehículo de prospección minera estacionado y aparentemente apagado; más adelante, los cuerpos caídos de tres espaciales, enfundados en su trajes de minero, y alrededor de ellos... por todas partes... unas extrañas flores.^ La verdad, algo que no se ve todos los días.", descripcion_corta "Estoy al final de la galería nueva... rodeado de unas extrañas flores.^ En un costado, hay un vehículo de prospección minera detenido; más adelante, los cuerpos de tres espaciales.^ El típico cuadro de eficiencia corporativa.", antes [; Ir : if ( (FlorPequena in Jugador) || ( (FlorPequena in FrascoMuestras) && (FrascoMuestras has abierto) ) ) "Será mejor asegurar la flor antes de salir de aquí. Se ve que es un bicho más bien contagioso..."; ], al_e GaleriaNueva, adentro [;<>;], no_puedes_ir "No hay salidas, salvo volver al este..."; ! Objetos de Fin de Galería Nueva Objeto_Escenario Flores "flores extrañas" FinGaleriaNueva with nombre 'flores', adjetivos 'extrañas', descripcion [; if (self hasnt visitado) { give self visitado; DescripcionFlores.proyeccion(); rtrue; } else "Son las flores más extrañas que jamás halla visto. Parecen pequeñas trompetas de color lechoso, con venillas iridiscentes. Sus tallos son delgados y forman un macizo parduzco y enrevesado. Están sobre los cuerpos de los espaciales, en las paredes... por todas partes, salvo en el vehículo. Alguna que otra flor pequeña crece algo más separada del resto."; ], antes [; Tirar, Empujar, Tocar : if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if (BrazoManipulador in Jugador) "Empujo algunas flores con el brazo manipulador, pero no reaccionan."; else { PrintAutoPausa("Escojo una flor pequeña, más apartada de las demás.^"); MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } Coger : if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if ((BrazoManipulador in Jugador) && ( (otro==0) || (otro==BrazoManipulador) ) ) { if ( (FlorPequena in Jugador) || (FlorPequena in FrascoMuestras) ) "¿Para qué? Ya tengo una a mano (jo...)"; else { PrintAutoPausa("Escojo una flor pequeña, más apartada de las demás.^"); <>; } } else { PrintAutoPausa("Escojo una flor pequeña, más apartada de las demás.^"); MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } ], has femenino nombreplural escenario; Objeto_Escenario EspacialesFinGaleriaNueva "cuerpos de espaciales" FinGaleriaNueva with nombre_mp 'cuerpos' 'espaciales' 'brazos', nombre_fp 'manos', adjetivos 'tendidos', descripcion [; if (self hasnt visitado) { give self visitado; MacetasEspaciales.proyeccion(); rtrue; } else "Los cuerpos de los espaciales están tendidos en el suelo, casi completamente cubiertos de flores. Estas cosas los han usado como unas vulgares macetas."; ], antes [; Tirar, Empujar, Tocar : if (self hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if (BrazoManipulador in Jugador) "Empujo uno de los cuerpos con el brazo manipulador, pero no reacciona."; else { PrintAutoPausa("Al tocar un cuerpo, rozo sin querer una de las flores.^"); MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } Coger : if (self hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if ((BrazoManipulador in Jugador) && ( (otro==0) || (otro==BrazoManipulador) ) ) "Intento coger uno de los cuerpos con el brazo manipulador, pero no logro levantarlo."; else { PrintAutoPausa("Al tocar un cuerpo, rozo sin querer una de las flores.^"); MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } ], has masculino nombreplural escenario; Objeto_Escenario VehiculoProspeccion "vehículo de prospección" FinGaleriaNueva with nombre_m 'vehiculo' 'tractor' 'vidrio', nombre_f 'cabina', adjetivos 'prospeccion' 'opaco' 'oruga', descripcion [; print "Es como un tractor oruga. Se utiliza para cargar equipo y personal en galerías recién abiertas... y para ir apisonando el suelo, de paso; economía corporativa. El vidrio de la cabina es opaco y no logro ver nada para adentro. Hay una puerta en el costado y "; if (PuertaVehiculo hasnt abierto) "está cerrada."; else "tiene un agujero como de mi tamaño."; ], descripcion_dentro [; print "Estoy dentro del vehículo. Aquí dentro cabrían tres espaciales, pero colaborando mucho. El vidrio de la cabina es opaco y no logro ver nada para afuera. Los instrumentos parecen estar apagados."; ], reaccionar_antes [; Salir, Salirse: if ( ((uno==0) || (uno==self)) && (Jugador in self)) { give self abierto; move Jugador to FinGaleriaNueva; move PuertaVehiculo to FinGaleriaNueva; move AgujeroPuertaVehiculo to FinGaleriaNueva; if (BrazoManipulador in self) move BrazoManipulador to Limbo; <>; } else rfalse; Dejar: if (Jugador in self) "¿Aquí dentro?... mejor no perder de vista mi equipamiento."; ], antes [; Abrir : <>; Entrar, Meterse: if (self has abierto) { give self ~abierto; move Jugador to self; move PuertaVehiculo to self; move AgujeroPuertaVehiculo to self; if (BrazoManipulador in Limbo) move BrazoManipulador to self; print "Entro con cuidado. Es más bien estrecho...^"; <>; } else <>; ], has luz masculino entrable soporte recipiente abrible ~abierto ~transparente; Objeto_Escenario PuertaVehiculo "puerta del vehículo" FinGaleriaNueva with nombre 'puerta', adjetivos 'metálica', descripcion [; print "Es una puerta metálica en un costado del vehículo.^"; if (self hasnt abierto) "Está cerrada."; else "Tiene un agujero como de mi tamaño."; ], antes [; Cerrar : if (self hasnt abierta) "Ya está cerrada."; else "¿Cómo? El agujero sigue ahí..."; Tirar, Empujar, Abrir : if (self hasnt abierta) "Trato de abrir la puerta del vehículo, pero no cede."; else "¿Para qué? Ya puedo entrar y salir sin problemas..."; ], has femenino abrible ~abierto escenario; Objeto_Escenario AgujeroPuertaVehiculo "agujero la puerta" Limbo with nombre 'agujero', nombre_mp 'bordes', adjetivos 'circular', descripcion "Es un agujero más o menos circular, cortado la puerta del vehículo.", antes [; Tocar : "Los bordes están tibios aún."; Entrar, Meterse : if (Jugador in FinGaleriaNueva) <>; else <>; ], has masculino entrable; Object BrazoManipulador "brazo manipulador" Limbo with inicial "Alguien se dejó aquí un brazo manipulador.", nombre_m 'brazo', nombre_mp 'dedos', adjetivos 'manipulador' 'mecanico' 'extensible', descripcion [; print "Es un brazo manipulador mecánico"; if (self hasnt visitado) { give self visitado; print " y extensible, para coger cosas a distancia segura. Sus ~dedos~ son muy precisos"; } if ((FlorPequena in Jugador) && (~(FlorPequena in FrascoMuestras)) ) print " y está sosteniendo la flor pequeña"; "."; ], despues [; Dejar : if (FlorPequena in Jugador) { print "Al dejar el brazo manipulador, la flor que tenía aferrada se suelta y cae. "; <>; } ] has masculino; Object FlorPequena "flor pequeña" FinGaleriaNueva with nombre 'flor', adjetivos 'pequeña', descripcion[; print "Es una flor más pequeña que el resto, pero igualmente colorida... y extraña. Parece inofensiva y delicada."; if ((self in Jugador) && (~(self in FrascoMuestras)) ) " Está sostenida sólidamente al final del brazo manipulador."; ], antes [; Tirar, Empujar, Tocar : if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if (self in Jugador) "Ya está firmemente aferrada en el brazo manipulador."; else if (BrazoManipulador in Jugador) "La flor se mueve un poco, pero sigue unida a los tallos del macizo."; else { MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } Coger, Sacar : if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if (self in Jugador) "Ya la tengo firmemente aferrada con el brazo manipulador..."; else if (self in FrascoMuestras) "Con todo lo que he tenido que hacer para meterla ahí dentro... ni de coña."; else if ((BrazoManipulador in Jugador) && ( (otro==0) || (otro==BrazoManipulador) ) ){ move self to Jugador; "Aferrándola con el brazo mecánico, logro separarla del macizo. Su apariencia delicada es engañosa; he tenido que aplicar bastante fuerza. "; } else { MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } ], despues [; Dejar : "Cuando llega al suelo, la flor se desmenuza en polvo ante mis ojos, desapareciendo en una nube de partículas que se desvanece.^ En fin...^ Hay más de donde tomé esta."; ] has femenino escenario; ! Decoración de Fin de Galería Nueva Decorado_Ampliado DecoradoFloresFinGaleriaNueva FinGaleriaNueva with antes [; Examinar: rfalse; Coger, Tocar, Empujar, BuscarEn: if (EspacialesFinGaleriaNueva hasnt visitado) "Mejor ir con cuidado. Esto no se ve muy normal que digamos..."; else if ((BrazoManipulador in Jugador) && ( (otro==0) || (otro==BrazoManipulador) ) ) { PrintAutoPausa("Al intentarlo, rozo sin querer una de las flores.^"); MuerteCogerFlor.proyeccion(); banderafin = 1; rtrue; } else "Empujo aquello con el brazo, pero apenas se mueve."; ], describir 'macizo' "Es una verdadera mata de tallos y flores, que cubre todo el fondo de la galería, del techo al suelo." G_MASCULINO 'venillas' "Son largas y delgadas, de muchos colores. Parecen brillar y cambiar su forma mientras las estoy mirando." G_FEMENINO + G_PLURAL 'colores' "Rojos, azules, verdes... brillan... brillan... bri...^ Mejor miro otra cosa." G_MASCULINO + G_PLURAL 'tallos' "Son delgados y parduzcos, enmarañados, con flores aquí y allá." G_MASCULINO + G_PLURAL 'trajes' "Son monos de minero, muy parecidos al que traigo puesto" G_MASCULINO + G_PLURAL ; !------------------------------------------------------------------- ! Punto de Inicio !------------------------------------------------------------------- ! Aquí empieza el juego. Este es el punto para imprimir el mensaje ! inicial de bienvenida y puesta en situación [Inicializar tecla; ! Modo "verbose", descripciones siempre largas modomirar = 2; box "~Macetas~" "Un Relato de Sci-Fi ~Duro~" "Realizado por: Sebastián Armas (Incanus)" "(C) Año 2007 " "Release 01.01.02" "I para Intro, G si jugaste ~Goteras~" "R para Recuperar una Partida" "Otra para Empezar"; ! Se inicializan conexiones para Puertas InicializarConexiones(); cambiarJugador(miJugador); ! Localización donde comienza el jugador localizacion=Muelle; @read_char 1 -> tecla; switch(tecla){ 'i' : Introduccion1.proyeccion(); PrintPausa("",0); Introduccion2.proyeccion(); PrintPausa("",0); Introduccion2Goteras.proyeccion(); PrintPausa("",0); Introduccion3.proyeccion(); PrintPausa("",0); Introduccion3Goteras.proyeccion(); PrintPausa("",0); Introduccion4.proyeccion(); PrintPausa("",0); Introduccion4Goteras.proyeccion(); PrintPausa("",0); Introduccion5.proyeccion(); PrintPausa("",0); 'g' : Introduccion1.proyeccion(); PrintPausa("",0); Introduccion2Goteras.proyeccion(); PrintPausa("",0); Introduccion3Goteras.proyeccion(); PrintPausa("",0); Introduccion4Goteras.proyeccion(); PrintPausa("",0); Introduccion5Goteras.proyeccion(); PrintPausa("",0); 'r' : <>; } ! Iniciar ambientador universal ! ArrancarDaemon(ambientador_universal); ! Presentación Primer Acto LimpiaPantalla.proyeccion(); box "Acto I: Arribo" "" "~Nada como una buena acogida" "en nuestra base~" "" ""; PrintPausa("",0); LimpiaPantalla.proyeccion(); ]; ! CORTOMETRAJES cortometraje LimpiaPantalla with descripcion "" ; cortometraje Introduccion1 with descripcion "Oscuridad.^" "Suave y tibia oscuridad.^" "Reposo.^^" "Paz.^^^" "Calma... " "pero...^^" "Frío.^^" "Mordiente, cristalino.^^^" "Luz.^^" "Clara.^^" " ¡¡Brillante!!...^^^" "Parpadeo... " "y despierto." ; cortometraje Introduccion2 with descripcion "Esta vez, me tocó ir a la Roca del Curro: la compañía le llama el 'Satélite de Extracción Mineral SM-26'. Está entre Marte y Júpiter, y salimos de Deimos hace varios días.^" "Voy a bordo de un vagón ('el OTV-44') al vuelo ('con impulso inercial'), dormido en criosueño con dos colegas más, porque la compañía prefiere ahorrar ('no gastar en soporte vital innecesario') durante el viaje de dos semanas.^^" "La compañía insiste en que nos refiramos a las cosas en lenguaje técnico u oficial, pero no importa... los compañeros llamamos a las cosas por su nombre.^^" "A fin de cuentas somos obreros, no el maldito Departamento de Marketing y Relaciones Púb(l)icas.^^" "Obreros... o abejas: la compañía intenta venderte el oro y el moro para que firmes con ellos, pero una vez que firmaste se acaban las mieles: te ensardinan en un transbordador rumbo a la colmena (la 'Estación Espacial Alfa' de la compañía) y a uno le tratan como ganado de ahí en adelante.^" ; cortometraje Introduccion2Goteras with descripcion "Joder.^" "La luz aun hiere mis ojos, pero ya me voy acostumbrando.^^" "Finalmente, distingo el techo de la criocámara del OTV, y las vainas de mis compañeros, por encima de mi... " "vacías...^^" "Esputendo. " "Quiere decir que hemos llegado a destino... y que soy el último en despertar.^" "¡Bah...! " "Qué más da. " "Si la compañía no tiene prisa, yo menos.^^" "Miro mi reloj, que está apagado; la porquería decidió jubilarse antes que yo.^" "Lo dejo en la vaina, cojo mi tarjeta de seguridad del terminal al frente y me levanto, rumbo al estanco." ; cortometraje Introduccion3 with descripcion "Llevo más de dos años trabajando para la compañía como Ingeniero de Mantenimiento... sin ningún regreso a Tierra o 'vacaciones' criogénicas; esto, voluntariamente, ya que así accedo a 'mejores instalaciones', o sea:^^" "Un cuarto para dormir con tres tíos, en vez de decenas unos encima de otros...^" "Vegetales una vez a la semana, en vez de pastillas con suplementos vitamínicos...^" "Fruta una vez al mes, en vez de caluguitas blandas de postre todo el tiempo...^" "Y a veces, la posibilidad (no oficial, pero me lo permiten) de compartir mi cuarto en forma exclusiva con alguien más... en vez de inyecciones y píldoras para el ánimo.^^" "La vida en el espacio, a fines del siglo XXI, es parecida a la tierra a fines del XIX... incluyendo la industrialización (ahora, el espacio) y la contaminación incipiente de un ambiente hasta ahora impoluto (de nuevo, el espacio).^" ; cortometraje Introduccion3Goteras with descripcion "Salgo al pasillo.^^" "Hace un frío de los mil demonios.^^" "Manipulo los controles de la compuerta^^" "...porque mis queridísimos colegas dejaron el estanco despresurizado al irse...^^" "y entro al estanco.^^" "Hay un traje EVA a mano.^^" "Comienzo a ponérmelo..." ; cortometraje Introduccion4 with descripcion "Yo soy uno más de tantos tipos (y tipas, por suerte) que trabajan en la ~Nueva Frontera~... como le gusta llamar a la compañía a esta insania de trabajar con los pies puestos en otro lugar que la Tierra.^" "El Espacio, incluyendo estaciones, naves y bases extraplanetarias, es el ambiente de trabajo más peligroso que el hombre ha conocido...^^" "...después del mar: no envidio a los pobres Subacuáticos, siempre con toneladas de agua encima, siempre con riesgo circulatorio, boqueando como peces abisales el escaso aire de sus tanques...^" "Ninguno de ellos se ha jubilado con vida.^^" "Yo, y la mayoría de los Espaciales, queremos conseguirlo." ; cortometraje Introduccion4Goteras with descripcion "Con el último sello en su lugar, el traje EVA se presuriza.^^" "Sigue haciendo frío.^^" "Manipulo los controles de presurización, dejando el estanco al vacío.^^" "Cojo la puerta, " "que se abre en completo silencio.^^^" "Salgo del estanco y piso con cuidado el suelo del muelle...^^^" "...oscuro y completamente a solas." ; cortometraje Introduccion5 with descripcion "El viaje de ida, por cierto, fue bastante accidentado.^" "En el espacio, los errores se pagan muy caros... y yo tuve que amortizar con mi propio pellejo un error de navegación con consecuencias casi fatales para el OTV.^" "Fueron momentos duros, pero a tarifa de Emergencias no es tan malo.^^" "Por lo mismo, esperaba un recibimiento un poco más cálido..." " pero, ya ven, así es la compañía.^^" "Bueno, veamos qué diablos quieren de mí.^" "No creo que me hayan hecho venir por mis habilidades sociales..." ; cortometraje Introduccion5Goteras with descripcion "Típico de la compañía.^" "Salvé al OTV de un desastre causado por un imbécil que no supo programar una ruta sin asteroides en el camino...^" "¿Y qué recibo a cambio?.^" "Mis honorarios y una recepción de paria...^" "Así es la compañía.^^" "Bueno, veamos qué diablos quieren de mí.^" "No creo que me hayan hecho venir por mis habilidades sociales... y espero que no sea para otra emergencia.^^" "No estoy de humor..." ; ! Cortometrajes Consola RV cortometraje Playa with descripcion [; printAutoPausa( "Es un hermoso atardecer...^^"); printAutoPausa( "El viento pasa suavemente entre el follaje de las palmeras, mientras el mar me refresca y el rumor de las olas me arrulla.^^"); printAutoPausa( "Cerca mío, la fogata arde con llamas multicolores...^^"); printAutoPausa( "rojo...^"); printAutoPausa( "verde...^"); printAutoPausa( "amarillo...^^"); printAutoPausa( "El pescado que se asa al palo huele delicioso y estiro mi mano para prob"); style bold; printAutoPausa( "^[MODO DEMO: CONTACTE A PERSONAL PARA USO COMPLETO]"); style roman; ] ; cortometraje Caceria with descripcion [; printAutoPausa( "El denso follaje me rodea por completo, verde y húmedo.^^"); printAutoPausa( "No hace cinco minutos el aguacero caía a baldes pero ahora el calor es casi insoportable.^^"); printAutoPausa( "Casi...^^"); printAutoPausa( "Sé que el animal anda cerca, más peligroso que antes precisamente por que está herido.^"); printAutoPausa( "Pero debo cazarle.^"); prIntAutoPausa( "No puedo volver a la aldea con las manos vacías otra vez...^^"); printAutoPausa( "Escucho un ruido a la izquierda y aferro mi lanza con fuerza, disp"); style bold; printAutoPausa( "^[MODO DEMO: CONTACTE A PERSONAL PARA USO COMPLETO]"); style roman; ] ; cortometraje Dragon with descripcion [; printAutoPausa( "Extiendo mis alas membranosas y me arrojo del risco... y vuelo.^^"); printAutoPausa( "Cruzo las gigantescas nubes, verdes y violeta bajo el gigantesco sol azul.^^"); printAutoPausa( "De pronto, lo veo a la distancia:^"); printAutoPausa( "Otro dragón de un color y olor distinto al mío. Una presa, un rival... o una pareja.^"); printAutoPausa( "Aún no lo sé... pero no puedo aceptar su presencia en mi coto de vuelo sin enfrentarle.^^"); printAutoPausa( "Lanzo un poderoso rugido y exhalo mi aliento de veneno fosforescente para llamar su atención.^^"); printAutoPausa( "Ahí viene: pronto nos enfrentaremos y pod"); style bold; printAutoPausa( "^[MODO DEMO: CONTACTE A PERSONAL PARA USO COMPLETO]"); style roman; ] ; cortometraje Harem with descripcion [; printAutoPausa( "Camino tranquilo por la galerías de palacio, disfrutando del sol matinal que se cuela por las ventanas.^"); printAutoPausa( "Sin darme cuenta, mis pasos me han llevado hasta mi harem, donde dos eunucos montan guardia.^"); printAutoPausa( "Mientras saludo su gesto de firmes con un ligero asentimiento, decido que no habría mejor manera de aprovechar el día de hoy: sin audiencias, sin reuniones militares ni estudios o ceremonias que atender.^^"); printAutoPausa( "Un día para disfrutarlo.^^"); printAutoPausa( "Abro la puerta y entro en mi jardín de delicias.^"); printAutoPausa( "Mis huríes, al verme llegar, ríen con voces cantarinas y se acercan suavemente, dispuestas a complacerme.^^"); printAutoPausa( "Con una sonrisa, les indico que tomen, esta vez, la iniciativa. Con suavidad, dos de ellas me desvisten con cuidado, mientras otras dos se aferran ansiosamente a mi poderos"); style bold; printAutoPausa( "^[MODO DEMO: CONTACTE A PERSONAL PARA USO COMPLETO]"); style roman; ] ; cortometraje Matanza with descripcion [; printAutoPausa( "Cierro con calma las puertas de acceso al comedor de Ejecutivos de la compañía y comienzo a soldarlas."); printAutoPausa( " El soplete láser es silencioso en extremo y para cuando un ejecutivo levanta la vista las puertas están perfectamente soldadas entre sí.^"); printAutoPausa( "Miro al ejecutivo, le devuelvo su sonrisa... y el muy cerdo palidece.^^"); printAutoPausa( "Tiene motivos, el mamón."); printAutoPausa( "Él fue el que me llamó a personal y me indicó, con mal disimulada alegría, que estaba despedido.^^"); printAutoPausa( "Bueno, veremos quien ríe ahora.^^"); printAutoPausa( "Los demás ejecutivos me miran con verdadera alarma, mientras me acerco a ellos lentamente, con el soplete claramente encendido.^"); printAutoPausa( "El de personal entiende, finalmente, de que va la cosa e intenta levantarse...pero ya es tarde: mi mano lo aferra como una abrazadera y mi brazo es de hierro.^^"); printAutoPausa( "Ignoro los gritos de pánico de los demás ejecutivos, mientras intentan vanamente salir del comedor y me dedico a lo mío: con una risa maniaca, aplico el soplete al ejecutivo justo en su"); style bold; printAutoPausa( "^[MODO DEMO: CONTACTE A PERSONAL PARA USO COMPLETO]"); style roman; ] ; ! Cortometrajes Fin Galeria Nueva cortometraje LlegadaFinGaleriaNueva with descripcion "He llegado al final de la galería nueva... y a mi destino por lo que puedo ver.^" "Y vaya que hay mucho para ver, aquí...^" "En un costado, un vehículo de prospección minera estacionado y aparentemente apagado.^" "Más adelante, los cuerpos caídos de tres espaciales, enfundados en su trajes de minero, " "y alrededor de ellos...^" "encima de ellos...^" "en las paredes...^" "cubriendo completamente el fondo de la galería...^^" "...flores.^" ; cortometraje DescripcionFlores with descripcion "Son las flores más extrañas que jamás halla visto. " "Parecen pequeñas trompetas de color lechoso, con venillas iridiscentes. " "Sus tallos son delgados y forman un macizo parduzco y enrevesado. " "Están sobre los cuerpos de los espaciales, en las paredes... " "por todas partes, salvo en el vehículo." "^Al acercarme, algunas flores se vuelven lentamente hacia mí.^" "Entonces, me fijo con más atención en las flores que están sobre los cuerpos de los espaciales.^" "Y me estremezco.^" ; cortometraje MacetasEspaciales with descripcion "Los cuerpos de los espaciales están tendidos en el suelo, casi completamente cubiertos de flores.^" "Se las ve especialmente concentradas en las manos y luego por los brazos, extendiéndose al resto del cuerpo.^^" "Da para pensar.^^" "Somos una especie que ha dejado su planeta " "y que comienza a dar sus primeros pasos en... " "bueno, " "toda esa coña de dejar basura en el espacio, " "después de ensuciar primero la Tierra.^^" "Nos creemos tan inteligentes, " "valientes, " "casi omnipotentes.^^" "Pero, " "para estas plantas, " "no somos más que un medio para crecer.^^" "Para ellas, " "sólo somos macetas...^" ; ! Cortometrajes PSIs ! Guardia Control de Ingreso cortometraje BienvenidaGuardia with descripcion "~Por fin has salido del bote. ¿Te habías quedado dormido o qué?~^^" "Lo miro un rato sin decir nada... y sin parpadear.^" "Puedo ver que no le gusta.^^" "~Como quieras... en el armario encontrarás un uniforme. " "Mantente dentro de las zonas autorizadas si valoras tu pellejo. " "Recuerda que debes ir a Personal en Administración para obtener tu asignación actual. " "Bienvenido a la base del Satélite de Extracción Mineral SM-26 y etc. etc.~^^" "Hace algo con las manos, y la grilla desaparece." ; ! Tecnico Médico cortometraje BienvenidaTecnicoMedico with descripcion "~Hola ¿Cómo te sientes?~, pregunta con tono aburrido.^^" "~Bastante bien~, le respondo, ~Acabo de llegar y...~^^" "~Se te nota, tío~, me interrumpe, ~No te preocupes, es un poco de euforia por el criosueño. Si persiste por más de un día, ven a verme y te daré unos depresivos.~^^" "Asentí. Recuerdo lo que pasó la última vez que me tocó trabajar con un novato: me habló durante un turno entero de la ilusión que le hacía trabajar en ~la nueva frontera~ y todo esa mierda corporativa. Al final del día, casi le abrí su casco en el estanco, antes de presurizar.^" "Entendió la indirecta y ya no molestó más." ; cortometraje NegociacionTecnicoMedico with descripcion "~Hola ¿Cómo te sientes?~, pregunta con tono aburrido.^^" "~No vengo por eso~, le digo.^^" "~Ya~, responde, ~¿Y entonces que coño haces aquí?~^^" "Decido ir con cuidado. ~Verás, estoy recolectando algunas cosillas para mi... colección personal, y necesito un frasco para toma de muestras.~^^" "~Colección personal~, repite, ~¿No es para la compañía, entonces?~^^" "El tipo es un verdadero genio. Niego con la cabeza.^^" "~Bueeeeeno~, responde mientras se estira con una sonrisita, el muy imbécil. " "~Esto ya es diferente ¿No? Quiero decir, estas cosas no son fáciles de conseguir, ¿Sabes?~^^" "Suspiro. Nada como depredarnos entre nosotros por unas migas.~¿Qué quieres?~, le pregunto.^^" "Increíblemente, el tipo parece incómodo. ~En casa, a pesar de lo que ven en las noticias sobre esta base y tal, nadie cree que yo sea un espacial o que alguna vez me haya puesto un traje de minero y todo ese rollo... que no soy un verdadero espacial, vamos.~^^" "Pongo mi mejor cara de incredulidad.~¿Y por qué podrían pensar eso? De puro verte, uno sabe que te lo pasas... trabajando duro, como todos.~^^" "Me mira con una expresión rara. ~Bueno~, prosigue, ~el hecho es que si les enviara algo de la mina, no sé, unas rocas o piedras del asteroide, tal vez me cr... se convencieran de una vez.^^" "Sonrío. Esto no va a ser tan difícil. ~Vale~, le digo, ~creo que ya nos entendemos.~^^" "Procurando contener la risa frente al tipo, me retiro.^" ; cortometraje TecnicoAceptaPiedras with descripcion "El tipo acepta los restos con una sonrisa de oreja a oreja: " "~Estupendo, colega... así da gusto hacer negocios: aquí tienes.~ finaliza, mientras me entrega el frasco de muestras.^^" "~Bueno~, me dice a modo de despedida, ~Ha sido un gusto... hala, vete.~^^" "Me parece buena idea, por lo que me marcho.^" ; ! Administrativo Personal cortometraje AsignacionAdministrativo with descripcion "Me saluda con un entusiasta ~Bienvenido a la base del Satélite de Extracción Mineral SM-26. " "De acuerdo a su identificación, se le ha destinado a una Asignación Especial.~^^" "Mierda.^^" "Una Asignación Especial.^^" "Prefiero estar en un desastre en gravedad cero y con fuga de atmósfera que tener que resolver una Asignación Especial.^^" "Joder.^^" "ESTUVE en un desastre en gravedad cero y con fuga de atmósfera camino de acá y les juro que no estaba tan asustado como ahora.^^" "Al verme palidecer, el muy mamón prosigue, sonriendo. ~Preséntese por favor en la Oficina del Administrador a la brevedad para mayor información.~^^" "Alcanzo a articular un ~...¿Qué es lo...~^^" ; ! Sindical cortometraje BienvenidaSindical with descripcion "~¡Hola macho!~, me saluda, ~¿Cómo estuvo el paseo en el vagón?~^^" "Hm. Informal pero no zalamero. Interesante.^^" "~Ya sabes~, le digo, ~Lo de siempre, aunque me tocó atender una emergencia en ruta. Pude...~^^" "Me interrumpe, serio. ~¿Te pagaron las horas como Emergencia?~^^" "Le muestro mi tarjeta, asintiendo.^^" "~Vale. ~, dice, echándose para atrás ¡sin que la silla se desarme!^^" "Se está ganando mi respeto.^^" "~Bueno, ve a Personal y si tienes dudas puedes venir a verme las veces que quieras.~^^" "Le doy las gracias y me marcho.^" ; cortometraje AsignacionSindical with descripcion "Debo tener una cara de muerte en vida, porque el Sindical, nada más mirarme, la pilla enseguida.^^" "~Asignación Especial ¿No?~^^" "Asiento, demasiado asustado todavía para responder.^^" "~¡Me cago en una piscina de ejecutivos con un gerente de tapón!...~^^" "Empuña las manos, pero luego se calma y me habla sereno y frío.^^" "~Mira colega, tú tranquilo. Estas cosas no pueden, por ley, ser obligatorias, y menos en tu caso, con esa mierda de viaje que sobreviviste. Ve para la oficina del Administrador. Si la cosa te apetece -porque estos riesgos la compañía sí los paga, para variar- veremos cómo salimos adelante y le demostramos a esa gente de que estamos hechos los espaciales.~^^" "Respiro un poco mejor y el tío me sonríe, confiado.^^" "La verdad, este Sindical parece que conoce su trabajo... y el ejecutivo de la compañía que lo designó no esta muy enterado.^^" "Peor para ellos.^^" "Mejor para nosotros.^^" "~Si la cosa pinta realmente muy mal~, prosigue, ~nada, tenemos la ley de nuestra parte y no te pueden obligar a aceptar esa asignación, ni mucho menos despedirte ¿Vale?~^^" "~Vale... esto, gracias.~^^" "Me dispongo a salir.^^" "~Ha sido un balde de agua fría ¿eh?~^^" "Se ríe.^^" "~Ya sabes lo que dicen: si el trabajo de los espaciales fuera sencillo...~^^" "~...lo harían los ejecutivos de la compañía.~ concluyo, algo más animado, y me voy.^" ; cortometraje TarjetaSindical with descripcion "Me mira por dos segundos y me dice, en tono neutro:^^" "~Tienes la típica cara acojonada de haber aceptado una Asignación Especial.~^^" "Este tipo lee mentes.^^" "Consigo mantener mi expresión resignada y expectante.^^" "Me mira un rato y me pregunta ~¿Las condiciones de la asignación son...?~^^" "~Convenientes.~, le respondo.^^" "Me mira silencioso por un rato. ~Hm...ya. ¿Y qué tienes que hacer, exactamente?~^^" "~Bueno... algo de trabajo investigativo para la compañía.~, le digo, pero no parece satisfecho con mi respuesta.^^" "~Déjame adivinar un poco.~, me dice, con algo de sorna. ~Es en las minas, tiene que ver con unos colegas que se fueron de vacaciones, sin que nadie en toda la puta base se enterara - por supuesto que no están desaparecidos, que va... y nada de lo que hagas va a figurar en los registros... oficiales de la compañía: se vería muy mal si se ventilara en la siguiente inspección. ¿Cómo voy?~, concluye sonriendo.^^" "Le respondo, con un tono más bien seco. ~Estás muy enterado de todo, tú.~^^" "Se encoge de hombros. ~Es mi trabajo... estar enterado. Tú, en cambio...~^^" "Suspira.^^" "Me mira, casi compasivamente. ~Lo que sea que te hayan prometido, tío, te lo vas ganar con sangre. ¿Has estado antes en las minas?~^^" "Niego con la cabeza.^^" "~Vale. Eso podemos arreglarlo~, dice, ~Dame tu tarjeta.~^^" "Se la doy. De no se dónde, saca una PDA, le introduce mi tarjeta, hace algo en la pantalla, asiente.^^" "~Bueno~ comenta, mientras me devuelve la tarjeta, ~busca como asimilar este programa de entrenamiento y por lo menos no harás alguna estupidez.~^^" "~Puede que te hagan falta otras cosas~, prosigue, ~aparte de conocimientos. Si eres avispado y sabes ponerte en los zapatos de tus colegas, no tendrás problemas en conseguirlas.~^^" "La verdad, me siento un poco avergonzado. ~Esto... gracias... yo...~^^" "~Nada, hombre, nada~, me contesta con tono un poco agrio, ~nadie quisiera estar en tu pellejo ahora, aunque te parezca que fue una... oportunidad única, esta puta Asignación Especial de la puta compañía...~^^" "Calla por un momento y me mira fijo.^^" "~Encuéntralos~, me dice, fríamente, ~encuentra a nuestros colegas desaparecidos y tratemos de que la compañía no las saque peladas de ésta.~^^" "Trago saliva, asiento, y me marcho sin decir palabra.^" ; ! Ejecutivo cortometraje AsignacionEjecutivo with descripcion "~Tome asiento, por favor~, me pide en tono solícito (o eso parece).^^" "Hago caso.^^" "Joder...^^" "Se podría uno quedar dormido en una de estas sillas y despertar sin un maldito dolor en el cuerpo. Son realm-^^" "Interrumpe mi estupenda reflexión sobre el equipamiento ejecutivo con ~Entiendo que ya recibió su... proposición de asignación.~^^" "Asiento.^^" "~Me imagino que querrá más detalles antes de... decidir si aceptar o no~.^^" "Asiento nuevamente (estoy volviéndome un experto en esto de en boca cerrada no ent-^^" "~Hace uno días tuvimos un problema en uno de los tiros nuevos de la mina de este asteroide. Estábamos haciendo una... prospección no programada, cuando perdimos contacto con el equipo de prospección. Desde entonces, no hemos conseguido reestablecer contacto con ellos y hemos considerado... poco conveniente arriesgar un nuevo equipo de empleados para ir a buscarles.~^^" "La compañía es así ¿saben? Cariñosa, siempre cuidando su propio trasero y usando a los espaciales para todo lo que haga falta... mientras no hagan falta espaciales, claro.^^" "Hmmm.^^" "~¿Han logrado determinar de qué murieron?~, pregunto.^^" "~No dije que hubieran muerto~, responde con una expresión neutra. ~De hecho, sus trajes siguen mandando bioseñales que corresponden a signos normales. Simplemente, según los datos que tenemos, no se mueven ni responden a nuestros llamados... desde hace más de dos semanas.~^^" "¿¡Dos semanas?! Los trajes de minero no pueden mantener soporte vital autónomo por tanto tiempo, y tampoco un vehículo de prosp-^^" "~Como podrá imaginarse~, prosiguió, ~sospechamos que hay algo raro allá abajo...~^^" "No hay como un ejecutivo de la compañía para señalar lo obvio con estilo.^^" "~...pero no hemos podido tomar demasiadas cartas en el asunto. No tenemos personal actualmente estacionado calificado para indagar, especialmente si hay algún problema biológico, como parece ser el caso. No podemos correr un riesgo de contagio masivo, con el consecuente cierre de la base.~^^" "Traducción: a la compañía le importa un cuerno masacrar a todos los espaciales de la base, pero perder ingresos de explotación minera... eso nunca.^^" "~Por otro lado~, prosigue, ~tenemos programada una inspección de auditoría en una semana más, y para entonces tenemos que tener esta situación... resuelta.~^^" "Asiento.^^" "Aplausos por mis habilidades interpersonales...^^" ; cortometraje AsignacionEjecutivo2 with descripcion "~Aquí es donde entra usted.~ Me mira fijamente. ~Pudimos observar su iniciativa e ingenio durante la crisis de su OTV en ruta a esta base...~^^" "Consigo mantener una expresión neutra. No es momento de discutir las habilidades del imbécil que programó la misión y no tuvo en cuenta esos ~pequeños~ detalles como el que casi nos mata.^^" "~...y estamos convencidos de que sus habilidades le permitirán llegar al fondo de este asunto sin tardanza... ni riesgo para su persona, por supuesto.~^^" "¡Por supuesto! Faltaría más...^^" "Bueno, vayamos al grano, como diría un dermatólogo.^^" "~Supongamos~, le digo con tono calmo, ~que acepto. ¿Qué hay para mí? Más allá de servir a la compañía tan lealmente como la compañía nos suele servir a la gente de mi nivel, quiero decir.~^^" "Decide ignorar el sarcasmo, y responde sin pestañear. ~Para empezar, se le pagarán todas las horas que demore en ello según tarifas de Emergencia... que me imagino ya sabe a cuánto ascienden. En caso de que tenga éxito...~^^" "~O sea, si sobrevivo...~, intercalo.^^" "~...es una consideración, no hay duda. Bueno, si logra determinar qué pasó exactamente con el equipo de prospección, le daremos un ascenso a un puesto de supervisión. Me imagino que sabe lo que eso significa.~^^" "Joder.^^" "Una habitación solo para mí... donde sea que me destine la compañía, incluyendo esta base.^^" "Acceso a instalaciones sanitarias personales: un baño ¡sólo - para - mí!^^" "Comida -verdadera comida- todo el tiempo. ¡Cada vez que quiera!^^" "La posibilidad de manejar mi horario en forma flexible; cumpliendo objetivos, probablemente complicados... pero tendría gente a mi cargo.^^" "Sería lo más parecido a un puesto ejecutivo... sin dejar de ser un espacial.^^" "Un trabajo soñado.^^" ; cortometraje AsignacionEjecutivo3 with descripcion "[SISTEMA DE SOSPECHA DE FOLLON CORPORATIVO ON]^^" "~¿Cuales serán las condiciones de trabajo?~, pregunto fríamente.^^" "~Bueno, hay dos condiciones importantes.~, responde indiferente, ~Primero, nada de esto quedará registrado... oficialmente, por supuesto, ya que dañaría la imagen de la compañía de cara a la próxima inspección. Eso quiere decir que su asignación no lo autorizará para ingresar a la Mina o aprovisionarse por conductos regulares de la base. No dudo que su iniciativa e ingenio le permitirán suplir esa falencia.~^^" "Esputendo. Una asignación ~negra~ tipo búscate-la-vida-o-te-jodes. Bueno, no será peor que lo que pasó en el OTV-^^" "~Y segundo~, prosigue, ~si efectivamente hay un riesgo biológico, necesitamos una muestra del material contaminante para... tomar medidas preventivas.~^^" "-o puede ser peor que el OTV.^^" "Me acaba de venir a la memoria una vieja peli del siglo XX -un clásico de género- y de una corporación que formaba parte de la trama.^^" "La corporación se llamaba Weyland-Yutani.^^" "Curiosamente, hay rumores de que nuestra compañía también tiene una rama de investigación biológica semejante a Weiland... y los métodos de nuestra compañía no son muy diferentes a los de Weiland Yutani.^^" "'Tripulación prescindible' es casi un lema corporativo.^^" "[DATOS CONFIRMADOS]^^" "[SISTEMA DE SOSPECHA DE FOLLON CORPORATIVO OFF]^^" "~¿Y bien?~ me pregunta.^^" "Por supuesto, aceptar equivale a venderle mi alma al diablo... más precisamente a la compañía.^^" "Pero los beneficios...^^" "Miro al lucifer con traje que tengo al frente, y asiento.^^" "Sin cambiar de expresión, indica con una mano una ranura de tarjeta que no estaba en su escritorio cuando comenzamos nuestra conversación.^^" "Inserto mi tarjeta, y después de escuchar un BIP la retiro, la ranura de desvanece, me levanto y me marcho sin decir palabra.^^^^" "Qué diablos... a fin de cuentas, si este fuera un trabajo fácil, lo haría un ejecutivo.^" ; ! Técnica de Sistemas cortometraje TocarCompuertaSistemas with descripcion "Golpeo la puerta transparente: algo se oye, ya que la chica se da vuelta.^" "Me mira lentamente, de arriba a abajo... y parece que le caigo en gracia.^" "Sonríe.^" "Se acerca a la puerta y, tras abrirla, me invita a pasar.^" "Y, como no soy tonto, acepto...^" ; cortometraje FlirteoTecnicaSistemas with descripcion "~Hola, guapo~ me saluda ~pensé que te habías quedado mudo cuando entraste.~^^" "Le sonrío ~Nada, que me distraje mirando todo este jaleo... ¿Estás muy ocupada ahora mismo?~^^" "Da un suspiro y se apoya suavemente en un módulo. Lo envidio.^^" "~Nada, ya sabes, mantenimiento y monitoreo.~, me responde, ~La compañía tiene sistemas bastante confiables, pero igual prefieren tener a alguien que los vigile y verifique que todo va bien.~^^" "~¿No tienen otros sistemas para eso mismo?~ le pregunto.^^" "Se ríe (¡qué boca!). ~Sí, claro, pero ya sabes, legalmente todo lo que contribuya al soporte vital de la base debe tener supervisión humana.~ Se estira, como una gata. ~Es un trabajo, nada más...~^^" "Me mira con interés. ~¿Y qué puedo hacer por ti? No habrás entrado a jugar a las preguntas, ¿no?~^^" "~Verás:~, le digo, ~necesito bajar a la Mina a hacer unas cosillas, pero no tengo acceso. Además, entiendo que es mejor contar con planos para no perderse allá abajo.~^^" "Se cruza de brazos. ~¿Y crees que yo voy a darte todo eso así nada más?~^^" "Me acerco un poco y le digo con voz queda ~Seguro que habrá algo que yo pueda hacer para convencerte...~^^" "Me mira de arriba para abajo y sonríe, coqueta ~Puede que sí...~^" ; cortometraje FollarTecnicaSistemas with descripcion "Seguro habéis escuchado esto y lo otro sobre la ~excitante vida personal~ de los (y las) espaciales.^" "De eso nada: este tipo de trabajo no nos deja demasiado espacio ni tiempo para interactuar para casi nada que no sean relaciones estrictamente laborales...^^" "Salvo, claro, que se dé la ocasión y el interés de dos espaciales con gustos similares.^^" "Como ahora, por ejemplo.^^" "Ahora bien, como soy un espacial y un caballero (creo), solo diré esto sobre mi encuentro con esta señorita:^^" "Lo he pasado estupendamente, y ella me dio a entender que no estaba a disgusto.^^" "Y pude constatarlo varias veces, modestia aparte.^^" "Una vez que hubimos terminado (je) con el asunto que tratamos tan agradablemente, le di mi tarjeta, hizo algo en algunos módulos y me la devolvió con un pellizcón en un sitio un tanto incómodo y un ~De nada, espacial... te hará falta una PDA para usar los planos; los guardias suelen tener una. No son los tipos más amables de la base, pero veo que eres un tipo con recursos. Muuchos recursos...~^^" "Le di una buena palmada en el trasero y me escabullí al pasillo, muy satisfecho.^" ; ! Espacial de Equipamiento cortometraje HablarEspacialEquipamiento with descripcion "~No estás autorizado para retirar equipo.~ me dice en tono neutro.^^" "~Ya lo sé~, le respondo, ~¡Pero igual necesito bajar a las Minas!~^^" "~¡Pues te jodes!~ me susurra.^^" "Respiro y me sereno un poco. Asaltarlo no sería solución: tiene cara de ser mucho más duro que el equipamiento que reparte. Hay que apelar a su interés.^^" "~¿Y no habrá nada que yo pueda hacer por ti?~ le pregunto, apoyándome en el mesón.^^" "Me mira apreciativamente y tuerce el gesto. ~No eres de mi tipo, tío.~^^" "Vaya, qué sorpresa... él tampoco es de mi tipo.^^" "~Me refiero a que habrá algo que quieras tener~, le digo, y haciendo un gesto hacia los estantes, agrego ~y que no está en este almacén...~^^" "Mira hacia los estantes y luego me mira, considerándolo. ~Un plato de comida -de verdadera comida- podría ser...~^^" "~¡Trato hecho!~ le respondo, golpeando el mesón, mientras me retiro al pasillo antes de que cambie de idea.^" ; ! Guardia de Acceso a Mina cortometraje HablarGuardiaAccesoMina with descripcion "~Hola, tío~, lo saludo en tono liviano, ~¿Cómo va eso?~^^" "~Bueno~, trata de sonreir, ~no puedo quejarme...~^^" "Suelto una risa seca. Efectivamente, a pesar de los esfuerzo del Sindicato, la compañía nunca se ha molestado en tener un formulario de quejas en Administración de Personal o un sistema afín. De hecho, algún gracioso se le ocurrió rotular con ~Oficina de Quejas~ en un estanco con fallas... y la compañía (sutiles) nunca lo borraron ni lo repararon.^^" "Es tan raro que un guardia de muestras de sentido del humor o de rasgos humanos en general, que me intereso por su salud.^^" "~¿Y por qué esa cara?~, le pregunto, ~No será que te aburrimos ¿no?~^^" "Increíblemente ¡suspira! ~No, macho, si uds. son lo único entretenido de esta base... hasta hace dos semanas.~^" "~Me tocó bajar a hacer una inspección de las luces de seguridad, junto con otros espaciales... y como se me había quedado la PDA con el plano en mi dormitorio, pues... me separé un momento del grupo y... esto... bueno, que me perdí allá abajo.~^^" "Joder. Pobre diablo. Perderse en una mina... no le deseo eso ni a un guardia.^" "A un ejecutivo, sí por supuesto, con una venda y clavos dentro de los zapatos, pero un guardia... ¡es un espacial!^^ Trago saliva y le pregunto con voz queda ~¿Cuánto tiempo estuviste allí abajo?~^^" "Se mira las botas. ~¿Según el reloj o según mis recuerdos?~^^" "Crisis de pánico. Esputendo.^^" "~Tuve que devolver los planos~, prosigue, ~y, so pena de despido, tengo prohibido volver a bajar a la Mina.~ Se encoge de hombros. ~Es igual... hago turnos más largos acá arriba y compenso el sueldo.~^^" "Después de un breve silencio me mira y me pregunta ~Y tú ¿vas a bajar?~^^" "Trato de no tomarle el pelo y le respondo. ~Me falta una PDA para planos, y bueno... es peligroso bajar así, ya sabes.~^^" "Asiente. ~Te diré qué: si vas y aseas mi dormitorio -paso poco tiempo ahí- te presto mi PDA~, dice, mientras le da una palmada a la PDA que lleva colgando.^^" "Lo miro, incrédulo. No sé que me tiene más atónito, si su generosidad o el hecho de que pueda dormir en un dormitorio personal. ~¿Tienes un dormitorio propio, tío?~^^" "Me dirige una sonrisa triste. ~Mis vecinos de litera se marcharon, porque gritaba mucho mientras dormía y tal.~^^" "Sin decir palabra, le doy una palmada suave en el hombro y le doy un buen apretón de manos, mientras le digo ~¡Trato hecho, colega!~^^" "Se despide con un ~Habitación 1175, al fondo del pasillo, código 326... y gracias por la conversación.~^" ; ! Muertes ! Muerte por no tener Traje Minero en Mina cortometraje MuerteTrajeMinero with descripcion "Con estupor, noto que algo me escuece la piel del brazo... como una picazón.^" "La picazón se extiende rápidamente y se trasforma en un fuerte ardor.^" "Preocupado, miro mis manos y brazos, donde han comenzado a aparecer unas manchas rojas, que ante mis propios ojos, comienzan a sangrar y convertirse en llagas cada vez más grandes.^" "Intento moverme, pero mis ojos se nublan, mis brazos se aflojan y mis piernas no responden.^" "Mientras caigo, sintiendo como si un fuego abrasara todo mi cuerpo, trato de recordar vagas advertencias sobre la atmósfera corrosiva de la mina..." ; ! Muerte por no usar Grampones y bajar una cuesta cortometraje MuerteDerrape with descripcion "A medida que avanzo cuesta a abajo, las botas del traje comienzan a deslizarse en el terreno.^" "Intento frenar moviendo los brazos, pero es inútil: gano aun más velocidad..." " y caigo al suelo.^" "Trato de frenar como sea, pero el traje desliza sin remedio y el roce comienza a quemarlo.^" "Finalmente, la pendiente se acaba y choco contra el terreno nivelado, dando vueltas y más vueltas.^" "Consigo levantarme, muy maltrecho, con el traje hecho jirones, mi cuerpo expuesto a la atmósfera de la mina..." ; ! Muerte por no usar Grampones y saltar la zanja cortometraje MuerteDerrapeSalto with descripcion "De un buen salto, logro cruzar la zanja... pero al llegar al otro lado mis pies resbalan.^" "Intento frenar moviendo los brazos, pero es inútil: me balanceo inútilmente..." " y caigo hacia atrás.^" "Mientras caigo, trato de recordar vagas advertencias sobre el uso de equipamiento de seguridad en la mina..." ; ! Muerte por meterse en la zanja cortometraje MuerteBajarZanja with descripcion "Con cuidado, bajo las piernas y me comienzo a deslizar por el borde de la zanja.^" "Al apoyar mis pies contra la pared, el suelo del borde se derrumba bajo mis manos..." " y me precipito hacia adelante.^" "Mientras caigo, trato de recordar vagas advertencias sobre el uso de equipamiento de seguridad en la mina..." ; ! Muerte por tocar o coger las flores sin el Brazo Mecanico cortometraje MuerteCogerFlor with descripcion "Al tocarla, la flor se abre como un paraguas, sus venillas se levantan de la superficie...^" "¡Y se lanzan hacia mi mano, aferrando mis dedos!^" "Todo ha ocurrido antes de que pueda pestañear.^" "Intento retirar mi mano, pero mi brazo se ha adormecido y no me obedece.^" "La sensación se extiende por mi tronco a mis piernas, y comienzo, " "lentamente, " "a " "caer " "al " "suelo.^" "Un sueño espeso y frío me nubla la vista.^" "Lo último que veo es mi mano, completamente cubierta de venillas iridiscentes...^^" "...de las que ya comienzan a brotar flores minúsculas..." ; !Muerte por incendiar flores o decorados con flores usando el soplete cortometraje MuerteIncendioFlores with descripcion "Al contacto con el láser del soplete, las venillas de las flores se ponen incandescentes, brillando con una luz blanquísima, cegadora.^" "Cuando consigo dejar de parpadear y puedo enfocar de nuevo, puedo ver que todas las flores están brillando con una luz azulada y que los tallos están como oro al rojo vivo.^^" "Hay un segundo de silencio y quietud perfectos.^^" "Después, " "un destello azul.^^" "Y luego, " "en total silencio, " "me veo despedido hacia atrás, " "mientras una llamarada blanca llena el túnel.^^" "(suspiro)^^" "Mientras soy volatilizado, puedo consolarme en que, " "si no me he cargado todas las instalaciones de la compañía, " "y el asteroide también, " "al menos estoy siendo despedido " "de ambos " "con estilo..." ; cortometraje Fin1 with descripcion "Con cuidado, cierro el frasco y dejo la flor segura dentro.^^" "Después de varias horas de curro duro... " "por fin... " "me relajo un poco.^^" "Ahora ya sólo resta volver donde el ejecutivo de la base, " "entregarle su cochina flor... " "y empezar mi nueva vida laboral. " "Y, por primera vez desde que trabajo en el espacio, ~vida laboral~ ya no será un mal chiste.^^" "A partir de ahora, habrán algunos cambios, todos para mejor." ; cortometraje Fin2 with descripcion "Mientras camino de vuelta por la galería, trato de sentir remordimientos por lo que he hecho... " "y no lo consigo.^" "Decir que todo esto fue difícil o peligroso, es como decir que ~mi viaje a la base fue un poco accidentado~.^^" "No. " "Lo que venga ahora, como todo lo que he hecho y hacemos los espaciales, me lo habré ganado. " "Y a pulso.^^" "El recorrido de vuelta se me está haciendo más sencillo de lo que pensaba...^^" "Voy con el corazón y el paso ligero... " "como " "si " "flotara... " "y no es por falta de gravedad, vaya.^^" "Será que me siento satisfecho, como no me he sentido desde... " "ya no me acuerdo cuándo.^^" "Joder.^^" "Cuando veo las caras de mis colegas " "que esperan el ascensor para subir a Operaciones, " "caigo en la cuenta de que esta sensación de insatisfacción es " "nada más " "ni nada menos " "que el permanente ambiente laboral que la maldita compañía nos impone a todos sus trabajadores " "(fuera de los ejecutivos, claro) " "para mantenernos bajo control: " "dóciles, " "maleables " "y fácilmente reemplazables.^^" "Subiendo en el ascensor atestado, entiendo " "finalmente " "cómo y porqué " "la compañía nos tiene y nos mantiene como ganado...^^" "...y una furia lenta comienza a crecer dentro mío." ; cortometraje Fin3 with descripcion "Ya en Operaciones, me abro paso y avanzo a paso vivo " "(para estupor de muchos) " "rumbo a Servicios.^" "Ni siquiera se me ha ocurrido sacarme el traje de minero, " "y recibo varias miradas divertidas... " "que no me interesan.^^" "Mientras subo (solo) hacia Servicios, miro el frasco " "y su flor dentro...^^" "...y por unos segundos imagino lo que pasaría si lo abriera allá arriba..." "^" "^" "^" "...pero recapacito al abrirse las puertas.^" "Puedo sentirme vengativo, pero mi problema no es con mis colegas.^^" "Mi problema " "es con la Compañía." "^" "^" "^" "Al llegar finalmente al Area Administrativa, me detengo unos momentos." "^" "^" "¿Saben?^^" "Estoy tentado de pasar primero por la oficina sindical " "y contarle todo esto que ha pasado a nuestro representante.^" "Seguro que él puede darle un giro interesante a la situación..." ; ! LINEAS DE GRAMATICA ! Definiciones para ayuda Verb 'ayuda' * -> ayuda * topic ->ayuda; [AyudaSub ; ZIPI_RunMenuT(ZIPI_Menu4); @erase_window $ffff; JugadorA(localizacion); ]; ! Definiciones para pistas Verb 'pistas' * -> pistas * topic ->pistas; [PistasSub ; ZIPI_RunMenuT(ZIPI_Menu7); @erase_window $ffff; JugadorA(localizacion); ]; ! Definiciones para Bajar y Subir Verb 'desciende' * -> Bajar; Verb 'asciende' * -> Subir; ! Definiciones para Conversar Verb 'conversa' * 'a' noun -> Hablar * 'con' noun -> Hablar * noun -> Hablar; ! Definiciones para Muebles Verb 'acuestate' 'tiendete' 'recuestate' * 'en' noun -> Meterse * noun -> Meterse; ! Definiciones para lectura [ LeerSub; <>; ]; Extend 'lee' first * legible -> Leer; ! Definiciones para tecleables [TeclearSub; "No hay nada tecleable por aquí"; ]; Verb 'teclea' 'ingresa' 'digita' 'selecciona' 'elige' * -> teclear * noun -> teclear * topic -> teclear * 'en' noun topic -> teclear * 'sobre' noun topic -> teclear; ! Definiciones para llamar a Puerta de Acceso a Sistemas Verb 'llama' * 'a' noun -> Tocar; ! Definiciones para Sexo [FollarSub; "No me apetece, la verdad..."; ]; Verb 'folla' 'copula' 'magrea' * 'a' noun -> follar * 'con' noun -> follar * noun -> follar; ! Definciones para Limpiar Dormitorio del Guardia Verb 'ordena' * noun -> Frotar; ! Definiciones para Estirar o Doblar manta [EstirarSub; "No necesita que lo arregle."; ]; Verb 'estira' 'alisa' 'tiende' 'extiende' 'dobla' * noun -> estirar; ! Definiciones para puzzle de cajón Verb 'guarda' * held 'en' noun -> Meter; ! Definiciones para brazo mecánico Extend 'coge' * noun 'con' held -> Coger;