Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
Silvan87 committed Apr 23, 2017
1 parent 62ed9b7 commit 4f52dd7
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 24 deletions.
57 changes: 37 additions & 20 deletions esempi/Cromwell/interprete.js
Expand Up @@ -229,9 +229,10 @@ var Vista = {
// L'avvio della scena 1 deve resettare la storia
if (n == 1) {
S.nuovaPartita();
Vista.caricamento = 0;
G.nScena = 0; // La scena 0 indica che le istruzioni chiamate sono all'interno del blocco istruzioniGenerali
istruzioniGenerali(); // (funzione nel file 'scene.js')
G.nScena = 1; // Reimposto la scena 1 che è quella appena chiamata
G.nScena = 1; G.nScenaP = 1; G.nScenaPP = 1; // Reimposto la scena 1 che è quella appena chiamata
};

// Segna i passaggi di scena
Expand All @@ -253,9 +254,10 @@ var Vista = {
svuotaScena: function() {

// Svuota i contenuti e nasconde gli elementi della scena
G.luoghiRagg.bloccati = 0;
Vista.intermezzo = [];
Vista.testo = '';
Vista.uscite = ''; G.luoghiRagg.bloccati = 0;
Vista.uscite = '';
Vista.scelte = '';
document.getElementById('audio').innerHTML = '';
document.getElementById('scelte').style.visibility = 'hidden';
Expand Down Expand Up @@ -502,7 +504,7 @@ var I = {
I.inputGrezzo = e_inp.value.trim();
if (I.inputGrezzo.charAt(0) == '?') I.inputGrezzo = I.inputGrezzo.substr(1).trim();
// Rifiuta un input vuoto e reimposta la casella di input
if (I.inputGrezzo === '') { e_inp.value = '? '; return; }
if (I.inputGrezzo === '') { e_inp.value = '? '; G.pronto(); return; }

// Normalizza l'input grezzo del giocatore
I.inputNorm = Lingua.normalizzaInput(I.inputGrezzo, 1);
Expand Down Expand Up @@ -614,30 +616,39 @@ var I = {
if (cambioScena === 0) {
for (var a = 0; a < azioni.length; a++) {
if (azioni[a].azione === 'vaiA' && azioni[a].mosse !== undefined) {
I.eseguiIstruzione(azioni[a]);
azioni.splice(a, 1); a--;
cambioScena = 1;
break;
// Deve ricontrollare le condizioni su oggetti e variabili, le azioni precedenti possono averle cambiate
if (I.controllaOggVar(azioni[a]) === true) {
I.eseguiIstruzione(azioni[a]);
azioni.splice(a, 1); a--;
cambioScena = 1;
break;
}
}
}
}
// Poi i cambi di scena ordinari, se non ne è già avvenuto uno
if (cambioScena === 0) {
for (var a = 0; a < azioni.length; a++) {
if (azioni[a].azione === 'vaiA' && azioni[a].mosse === undefined) {
I.eseguiIstruzione(azioni[a]);
azioni.splice(a, 1); a--;
cambioScena = 1;
break;
// Deve ricontrollare le condizioni su oggetti e variabili, le azioni precedenti possono averle cambiate
if (I.controllaOggVar(azioni[a]) === true) {
I.eseguiIstruzione(azioni[a]);
azioni.splice(a, 1); a--;
cambioScena = 1;
break;
}
}
}
}
// Poi i messaggi dopo nMosse
// Assicurarsi che non sia un "vaiA" perché non vengono scartati tutti, solo il primo incontrato
for (var a = 0; a < azioni.length; a++) {
if (azioni[a].azione !== 'vaiA' && azioni[a].mosse !== undefined) {
I.eseguiIstruzione(azioni[a]);
azioneEseguita = 1;
// Deve ricontrollare le condizioni su oggetti e variabili, le azioni precedenti possono averle cambiate
if (I.controllaOggVar(azioni[a])) {
I.eseguiIstruzione(azioni[a]);
azioneEseguita = 1;
}
}
}

Expand Down Expand Up @@ -783,7 +794,7 @@ var I = {
eseguiAudio(istro.audio);
break;
case 'rispondi':
if (!istro.mosse) {
if (istro.mosse === undefined) {
classi = ' class="inviato';
if (Vista.stile.coloreTestoInviato) {
coloreInline = ' style="color:'+Vista.stile.coloreTestoInviato+';"';
Expand All @@ -805,7 +816,7 @@ var I = {
}
break;
case 'rispondiVai':
if (!istro.mosse) {
if (istro.mosse === undefined) {
document.getElementById('input').style.display = 'none';
classi = ' class="inviato';
if (Vista.stile.coloreTestoInviato) {
Expand Down Expand Up @@ -839,14 +850,21 @@ var G = {
nScena: 1, // Numero scena corrente
nScenaP: 1, // Numero scena precedente
nScenaPP: 1, // Numero scena precedente alla precedente
mosse: 0, // Numero mosse del giocatore
passaggiScena: {}, // Dizionario che dato un nScena restituisce un array di nScena verso cui si è transitati
luoghiRagg: { // Luoghi raggiungibili
bloccati: 0,
nomi: [], // Nomi di luoghi verso cui dirigersi con il comando 'direzioni'
coppie: {} // Sono coppie chiave-valore per avere il nScena di un luogo o il nome di un luogo dato un nScena
},

nuovaPartita: function() {
G.passaggiScena = {};
G.luoghiRagg = {};
G.luoghiRagg.bloccati = 0;
G.luoghiRagg.nomi = [];
G.luoghiRagg.coppie = {};
},

pronto: function() {
var e_inp = document.getElementById('input');
e_inp.focus();
Expand All @@ -872,9 +890,7 @@ var S = {
// Chiamare vocabolario crea sia i predicati ordinati che le equivalenze ordinate
if (Lingua.equivalenzeOrd.length !== 0) vocabolario();

G.mosse = 0; // Azzera il contatore delle mosse del giocatore
G.luoghiRagg.nomi = []; // Cancella tutti i nomi dei luoghi raggiungibili
G.luoghiRagg.coppie = {}; // Cancella tutte le associazioni tra nomi dei luoghi e nScena
G.nuovaPartita();
S.oggetti = {}; // Cancella tutti i contenitori con gli oggetti
S.variabili = {}; // Cancella tutte le variabili
},
Expand Down Expand Up @@ -1227,6 +1243,7 @@ function uscita(txt_in, nS, vis, nomeDest) {
// nomeDest viene usato se l'uscita è stata esplorata, altrimenti non deve comparire
if (['esplorato','esplorata'].indexOf(vis) !== -1 || G.uscitaEsplorata(nS)) {
if (nomeDest) {
txt_in += '|'+nomeDest+'|'+nomeUscita+' '+nomeDest;
nomeDest = '&nbsp;('+nomeDest+')';
} else if (G.luoghiRagg.coppie[nS] !== undefined) {
nomeDest = '&nbsp;('+G.luoghiRagg.coppie[nS]+')';
Expand Down Expand Up @@ -1349,7 +1366,7 @@ function nMosseRispondi(mosse, txt_out, rip) {
S.Istruzioni.valore('ripeti', rip);

var L; // Livello delle istruzioni (generali o di scena)
if (G.nScena === 0) { L = 'generali'; } else { L = 'scena'; Scena.stile.inputBox = 1; }
if (G.nScena === 0) { L = 'generali'; } else { L = 'scena'; Vista.stile.inputBox = 1; }

var iUB = Condizioni.correntiABlocchi.length - 1; // iUB: indice ultimo blocco
if (Condizioni.righeCoinvolte[iUB] > 0) {
Expand Down
2 changes: 1 addition & 1 deletion esempi/Cromwell/scene.js
Expand Up @@ -66,7 +66,7 @@ function istruzioniScena(n) {
case 1:
testo("<br /><span style=\"color:#0b0;\">CROMWELL © MMXVI</span><br />", "centrato");
immagine("drago.png");
testo("<span style=\"color:#0b0;\">Poteri arcani per soggiogare la morte</span><br /><br />", "centrato");
testo("<span style=\"color:#0b0;\">L'abate e il drago della palude</span><br /><br />", "centrato");
scegliVai("Inizia", 2, "centrato");
scegliRispondi("Istruzioni", "", "centrato");
scegliRispondi("Licenza", "CROMWELL © MMXVI è una rivisitazione dell'avventura testuale EXCALIBUR © MCMLXXXVIII pubblicata sulla rivista Amiga Byte n.8 come opera di pubblico dominio, liberamente copiabile e distribuibile senza scopo di lucro. <a href=\"https://github.com/Druido87/Confabula\" target=\"_blank\">Confabula</a> è l'interprete JavaScript per creare ed eseguire avventure testuali, rilasciato da <a href=\"https://github.com/Druido87\" target=\"_blank\">Druido87</a> con licenza <a href=\"https://github.com/Druido87/Confabula/blob/master/LICENSE\" target=\"_blank\">GNU L-GPL</a>. La storia rivisitata è un esempio di utilizzo di Confabula.", "centrato");
Expand Down
7 changes: 4 additions & 3 deletions esempi/Cromwell/stile.css
@@ -1,14 +1,14 @@

/** Stile personalizzabile **/

@font-face { font-family: "commodore"; src: url(commodore.ttf); }
@font-face { font-family: "commodore"; src: url("commodore.ttf"); }
/* Commodore64 Pixelized Free Font - http://all-free-download.com/font/download/commodore_64_pixelized_13026.html */

.coloreSfondo { background-color: #000; }
.coloreTesto { color: #B5A594; }
.coloreTestoInviato { color: #82776A; }
.testoCarattere { font-family: "commodore"; }
.testoGrandezza { font-size: 20px; letter-spacing: -1.5px; line-height: 1.2em; }
.testoGrandezza { font-size: 19.5px; letter-spacing: -2px; line-height: 22px; word-spacing: -4px; }
.testoAllineamento { text-align: left; }
.coloreScelta { color: #9C8159; }
.coloreScelta:hover /*colore scelta selezionata*/ { color: #cc0; }
Expand Down Expand Up @@ -36,8 +36,9 @@ a {
img {
max-width: 100%;
margin: 8px auto 8px auto;
image-rendering: pixelated;
}
#intermezzo, #testo, #input, #scelte {
#testo, #input, #scelte {
margin: 0 auto 0 auto;
padding: 0 8px 0 8px;
}
Expand Down

0 comments on commit 4f52dd7

Please sign in to comment.