Adattamento italiano del modulo lib_classes.i
della
ALAN Standard Library v2.1, © Anssi Räisänen, Artistic License 2.1.
Ad opera di Tristano Ajmone, © 2018, Artistic License 2.1.
Introduzione
Questo modulo della libreria definisce varie classi di oggetti e attori.
Siccome molte di queste classi ricorrono spesso nelle definizioni dei verbi
nel modulo lib_verbi.i
, si consiglia di procedere con cautela prima di
modificarle o cancellarle. Per semplificare tale compito, all’inizio di
ciascuna classe viene riportato se e dove venga fatto riferimento ad essa
negli altri moduli della libreria.
Dispositivi
Un macchinario o congengo ellettrico che è possibile accendere e spegnere, a meno che non sia rotto. Se esaminato, la descrizione includerà il suo stato attuale (acceso o spento).
ESEMPI: Interruttore, Tv, computer, radio, generatore elettrico.
attributi e valori predefiniti | significato |
---|---|
|
È spento. |
|
È funzionante. |
Questa classe non ricorre altrove, né in questo file né in altri moduli. |
Porte
Può essere aperta o chiusa, e (opzionale) bloccata e sbloccata. Di default
le porte sono chiuse e non bloccate. Per poter aprire una porta bloccata è
richiesta la sua chiave (chiave_abbinata
). Se esaminata, la descrizione
includerà il suo stato attuale (aperta o chiusa).
Le porte hanno anche l’attributo altro_lato
tramite il quale è possibile
abbinare tra loro due porte situate in stanze diverse, creando l’illusione
di una sola porta che si affaccia su entrambe le stanze. Quando due porte
sono associate tra loro in questo modo, ossia dichiarando ciascuna porta
come altro_lato
dell’altra, la libreria sincronizzerà i cambiamenti di
stato (aperta/chiusa, bloccata/sbloccata) tra esse, di modo che aprendo,
chiudendo, sbloccando o bloccando una di esse tali azioni abbiano effetto
automatico anche sulla porta associata.
attributi e valori predefiniti | significato |
---|---|
|
Può essere aperta e chiusa. |
|
È chiusa. |
|
Non ha una serratura. |
|
Non è blocata. |
|
È fissa. |
|
Nessuna porta abbinata. |
|
Non ha nessuna chiave abbinata. |
Questa classe non ricorre altrove, né in questo file né in altri moduli. |
Se si crea una porta bloccabile, si dovrà anche creare una chiave con cui il giocatore potrà sbloccarla. Esempio:
The portone_casa IsA porta at vialetto.
Name portone.
Has altro_lato portone_casa_retro.
Has chiave_abbinata chiave_portone.
End the.
The chiave_portone IsA object.
Name chiave.
Has articolo "la".
End the.
Finestre
Può essere aperta o chiusa; si può guardare attraverso e fuori da essa. Se esaminata, la descrizione includerà il suo stato attuale (aperta o chiusa).
attributi e valori predefiniti | significato |
---|---|
|
|
|
|
|
Questa classe non ricorre altrove, né in questo file né in altri moduli. |
Contenitore elencato
Si tratta di un contenitore i cui contenuti (se è aperto) saranno elencati
sia nella descrizione del luogo (entrandovi, o usando ‘guarda’) sia quando
viene esaminato o aperto. La libreria autogestisce lo stato di opacità di
questo tipo di contenitore, rendendolo non opaco (NOT OPAQUE
) quando viene
aperto, e opaco quando viene chiuso, affinché i suoi contenuti non vengano
svelati (elencati) quando esso è chiuso.
I contenuti di un contenitore normale non vengono elencati con il verbo ‘esamina’, ma solo con ‘guarda’, ‘guarda dentro’ o quando viene effettuata la descrizione del luogo. |
Questa classe non ricorre altrove, né in questo file né in altri moduli. |
Inizializzazione dei contenitori elencati
All’avvio, la libreria inizializzerà ogni istanza di contenitore_elencato
aggiungendo ai suoi consentiti
tutti gli oggetti contenuti in esso, di modo
che sia possibile rimetterveli dentro dopo averli rimossi.
INITIALIZE
FOR EACH lc IsA contenitore_elencato
DO
FOR EACH o IsA OBJECT, DIRECTLY IN lc
DO
INCLUDE o IN consentiti OF lc.
END FOR.
END FOR.
Questa automatizzazione risparmia all’autore l’incomodo di dover dichiarare manualmente, uno ad uno, che questi oggetti andranno annoverati tra i membri dell’insieme di oggetti che è consentito introdurre in quel contenitore. Dovrà comunque dichiarare manualmente quegli oggetti consentiti che non si trovano all’interno del contenitore all’inizio del gioco.
Suoni
È possibile ascoltare i suoni ma non esaminarli, annusarli né manipolarli. (volendo, li si può accendere e spegnere.)
attributi e valori predefiniti | significato |
---|---|
|
|
|
|
|
|
|
Questa classe non ricorre altrove, né in questo file né in altri moduli. |
Supporti
Una superficie su cui poter mettere cose e su cui si può salire e scendere. Si tratta di un oggetto di tipo contenitore, perciò è possibile prendere le cose vi si trovano sopra (in realtà, dentro di esso, ma viene presentato in modo da crare l’illusione che sia una superficie). Di default, gli oggetti su un supporto saranno elencati nella descrizione del luogo o quando il supporto viene esamintao.
Oggetti fittizi
Gli oggetti fittizi sono istanze utilizzate per inizializzare correttamente gli attributi delle classi definite in questo modulo che fanno riferimento ad altre istanze o classi (attributi di tipo istanza o insieme).
TODO
Questa sezione contiene l’elenco delle cose da fare per ultimare l’adattamento italiano del modulo delle classi.
Check-list per Doxter
Finisci di trasformare commenti in documentazione Doxter:
-
Descrizione
esamina
. -
Descrizione
guarda_in
. -
Descrizione
prendi
. -
Descrizione
prendi_da
. -
Descrizione
lascia
. -
Descrizione
chiedi
. -
Descrizione
dai_a
. -
Descrizione
versa
. -
Descrizione
versa_in
. -
Descrizione
versa_su
. -
Descrizione
svuota
. -
Descrizione
svuota_in
. -
Descrizione
svuota_su
. -
Descrizione
metti_in
. -
Descrizione
metti_su
.