! ! Créditos. ! ! Constantes Constant Historia "El Abismo"; Constant Titular "^Cruzando el Abismo.^Febrero de 2001^"; ! Número de serie Serial "022001"; ! Constantes para modificar el comportamiento del parser Constant PUNTUACION_MAX 1; Constant ADMITIR_COMANDO_SALIDAS; ! Incluir la librería (en parte) ! Estas líneas están presentes en cualquier aventura Include "EParser"; Include "Acciones"; ! Definición de localidades !--------------------------------------------------------------------- ! Localidad Abismo !--------------------------------------------------------------------- Object elAbismo "Al borde del abismo." with irrelevante 'rocas' 'roca', arena 0, with descripcion "A tus pies, se abre el abismo insondable. Te encuentras de pie en un saliente de roca, de espaldas a la pared sur del mismo. Al otro lado, el lado norte, un saliente de roca gemelo al que pisas ahora, da paso a la caverna que se abre al exterior. En medio de los salientes, la nada.", al_n [; if (self.arena==1) "¡No puedo cruzar el abismo!"; else <>; ], al_e "Las escarpadas rocas te cortan el paso.", al_o "Las escarpadas rocas te cortan el paso.", al_s "¡Pero si la pared de roca está a tu espalda!", has luz; Object -> saliente "saliente de roca" with nombre 'saliente', adjetivo 'rocoso', descripcion "El suelo del saliente está lleno de montoncitos de arena.^", inicial "Estás de pie sobre el saliente de roca.", has estatico; Object -> negroabismo "abismo insondable" with nombre 'abismo', adjetivo 'negro' 'insondable', descripcion "El abismo es negro e insondable. Muy profundo. Da miedo.", antes [; cruza: if (elAbismo.arena==0) { banderafin = 1; "Intentas cruzar el abismo de un salto pero ... fracasas."; } else { banderafin = 2; "Cruzas el abismo por el puente que vislumbras vagamente ..."; } ], has oculto estatico; Object -> cartel "cartel podrido" with nombre 'cartel' 'aviso', adjetivo 'mohoso' 'roñoso' 'viejo' 'podrido', descripcion "El cartel indica: 'Ten Fe: pero que no sea ciega.'^", inicial "Aquí hay un cartel medio podrido por la humedad.", has estatico; Object -> arenaloca "arena" with nombre 'arena' 'granos' 'montoncitos', adjetivo 'gordos' 'gorda' 'arenoso' 'arenosa', articulo "bastante", descripcion "Montoncitos de arena gorda ...^", antes [; echaA: if (otro==negroabismo){ elAbismo.arena = 1; ++puntuacion; remove arenaloca; "Al caer la arena al abismo, parte queda sobre una superficie que no habías visto antes debido a un efecto óptico ... ¡es un puente!.^Ahora podrás cruzar seguro."; } else <>; ], has oculto femenino; ! Después de las localidades, incluimos la gramática ! Este include siempre está aquí en todos los programas [echaASub; "No he entendido demasiado bien qué quieres echar y en dónde ..."; ]; [cruzaSub; "No he entendido demasiado bien qué quieres cruzar ..."; ]; Include "Gramatica"; !Definiciones de la gramática para este juego Extend 'cruza' first * noun -> cruza; Extend 'salta' first * noun -> cruza; Extend 'tira' first * held 'a//' noun -> echaA * held 'al' noun -> echaA * held 'en' noun -> echaA; Extend 'lanza' first * held 'a//' noun -> echaA * held 'al' noun -> echaA * held 'en' noun -> echaA; Extend 'echa' first * held 'a//' noun -> echaA * held 'al' noun -> echaA * held 'en' noun -> echaA; !--------------------------------------------------------------------- ! Inicialización !--------------------------------------------------------------------- Object mapa "mapa del tesoro" with nombre 'mapa' 'tesoro', descripcion "El mapa que te ha llevado hasta aquí.^ Desearías no haberlo encontrado nunca.", antes [; echaA: if (otro==negroabismo) { remove mapa; "El mapa cae al abismo y se pierde en sus profundidades."; } ] ; [ Inicializar; localizacion = elAbismo; move mapa to jugador; "^Te adentraste en la cueva del tesoro, y ... recuerdas perfectamente como al llegar a la cámara secreta del rey, activaste una trampa que podría haber sido mortal ...^ Buscabas la riqueza, pero ahora te conformas con salir vivo ... ^^"; ];