"Fuoco alle polveri!" by Leonardo Boselli
Include Italian by Leonardo Boselli.
Include Metric Units by Graham Nelson.
Release along with a "Standard" website and source text.
When play begins:
say "E['] successo tutto in un attimo. Dopo aver scavato per ore, avevi appena estratto il forziere dalla buca quando il tuo complice, il pirata Silver, ti ha colpito con la sua pala sulla testa.[paragraph break]C[']è voluto parecchio tempo perché ti riprendessi, ma ora ti ritrovi solo e non c[']è traccia né di Silver, né del forziere, né della scialuppa... No! Ecco la scialuppa! Oltre la barriera corallina vedi quel rinnegato di Silver che si allontana. Ti ha abbandonato su un[']isola deserta![paragraph break]Sulla spiaggia c[']è un cannone: lo guardi e pensi che ormai ti rimane una sola cosa da tentare..."
The spiaggia is a female room. "L[']isola è un sottile atollo di sabbia circondato dall[']oceano."
The cannone is a container in the spiaggia. The description is "Un potente cannone di bronzo. Il suo alzo è di [the alzo del cannone]."
Instead of taking the cannone, say "E['] insabbiato. Non si sposta."
The manuale di istruzioni is a thing in the spiaggia. The description is "[italic type]Manuale del perfetto artigliere:[line break]il cannone è lungo 1.5m[line break]1) metti alcune cariche di polvere nera da 100g nel cannone[line break]2) metti una palla di ferro da 2kg nel cannone[line break]3) regola l'alzo con il comando 'ALZO 10cm' da 5cm a 90cm[line break]4) spara il proiettile con il comando 'FUOCO'"
The scialuppa is a thing in the spiaggia. The scialuppa has a length called distanza. The distanza of the scialuppa is 75m. "Vedi una scialuppa in cui il pirata Silver sta remando affannosamente. Si trova oltre la barriera corallina a [distanza of the scialuppa] di distanza." The description is "La scialuppa si trova a [distanza of the scialuppa] di distanza."
The palla di ferro is a kind of thing. The palla di ferro is female. There are five palla di ferro in the spiaggia. The description of a palla di ferro is "Palle di ferro da [massa delle palle]." The printed plural name of the palla di ferro is "palle di ferro".
Understand "palle" as palla di ferro.
The carica di polvere is a kind of thing. The carica di polvere is female. There are 15 carica di polvere in the spiaggia. The description of a carica di polvere is "Cariche di polvere nera da [massa delle cariche]." The printed plural name of the carica di polvere is "cariche di polvere".
Understand "cariche" as carica di polvere.
Instead of inserting something (called the object) into the cannone:
if the object is a carica di polvere and the number of the carica di polvere in the cannone is four:
say "Ci sono già quattro cariche nel cannone. Se ne aggiungi altre potrebbe esplodere.";
otherwise if the object is a palla di ferro and the number of the palla di ferro in the cannone is one:
say "C[']è già una palla di ferro nel cannone.";
otherwise:
continue the action.
Adjusting is an action applying to one length.
Understand "alzo [length]" as adjusting.
Check adjusting:
let x be the length understood;
if x is less than 5cm or x is greater than 90cm, say "Alzo fuori corsa." instead.
Carry out adjusting:
now the alzo del cannone is the length understood.
Report adjusting:
say "L[']alzo del cannone è stato regolato a [the length understood]."
The massa delle palle is a mass that varies. The massa delle palle is 2kg.
The massa delle cariche is a mass that varies. The massa delle cariche is 100g.
The alzo del cannone is a length that varies. The alzo del cannone is 30cm.
The lunghezza del cannone is a length that varies. The lunghezza del cannone is 1.5m.
Firing is an action applying to nothing.
Understand "fuoco" as firing.
Instead of firing:
if the cannone does not contain a carica di polvere:
say "Non ci sono cariche di polvere nel cannone.";
otherwise if the cannone does not contain a palla di ferro:
say "Non ci sono palle di ferro nel cannone.";
otherwise:
let n be the number of the carica di polvere in the cannone;
let v be given by Energia cinetica allo scoppio where m is the massa delle palle, p is the massa delle cariche, E is the E_polvere;
let E_totale be massa delle palle times E_polvere;
let w be given by Componente verticale where k is the alzo del cannone, l is the lunghezza del cannone;
let u be given by Componente orizzontale;
let h be given by Altezza massima where m is the massa delle palle;
let t be given by Tempo di salita;
let t be 2 times t;
let d be given by Gittata;
say "La polvere nera nel cannone prende fuoco e sviluppa un[']energia di [E_totale] lanciando la palla di ferro alla velocità di [v]. Il proiettile percorre una traiettoria parabolica, raggiunge un[']altezza massima di [h] e, trascorsi [t] dallo sparo, ricade a [d] di distanza.";
repeat with item running through the things in the cannone:
remove item from play;
let k be the distanza of the scialuppa;
if d is less than 10m:
say "Il proiettile ha sollevato una nuvola di sabbia che ti investe. Non spararti sui piedi!";
otherwise if d is less than k minus 3m or d is greater than k plus 3m:
let k be k minus d;
say "Il proiettile solleva una colonna d[']acqua. Il lancio risulta troppo [if k is greater than 0m]corto di [k][otherwise]lungo di [0m minus k][end if].";
otherwise:
say "Il proiettile colpisce in pieno la scialuppa frantumandola in mille pezzi, mentre il forziere ed il pirata Silver vanno a far compagnia ai pesci.";
end the game in victory;
change the distanza of the scialuppa to the distanza of the scialuppa plus 10m;
if the number of the palla di ferro in the spiaggia is zero:
end the game in death;
say "[line break]Il pirata Silver rema con foga per sottrarsi alle tue cannonate. Ora la scialuppa si trova a [distanza of the scialuppa] di distanza."
Instead of waiting:
change the distanza of the scialuppa to the distanza of the scialuppa plus 10m;
say "Attendi il momento propizio per fare fuoco ed il tempo passa. Nel frattempo il pirata Silver rema disperatamente per sottrarsi alle tue cannonate. Ora la scialuppa si trova a [distanza of the scialuppa] di distanza."
The energy-density is a kind of value. 10J/kg specifies an energy-density.
Energy-density times mass specifies energy.
The E_polvere is an energy-density that varies. E_polvere is 10000J/kg.
Equation - Energia cinetica allo scoppio
n p E = m v^2 / 2
where n is a number, p is a mass, E is an energy-density, m is a mass, v is a velocity.
Equation - Componente verticale
w l = k v
where w is a velocity, v is a velocity, k is a length, l is a length.
Equation - Componente orizzontale
u^2 = v^2 - w^2
where u is a velocity, v is a velocity, w is a velocity.
The accelerazione di gravità is an acceleration that varies. The accelerazione di gravità is 9.81 m/ss.
Equation - Altezza massima
m g h = m w^2 / 2
where m is a mass, g is the accelerazione di gravità, h is a length, w is a velocity.
Equation - Tempo di salita
w = g t
where w is a velocity, g is the accelerazione di gravità, t is an elapsed time.
Equation - Gittata
d = u t
where d is a length, u is a velocity, t is an elapsed time.