diff --git a/assets/icons/coca.svg b/assets/icons/coca.svg
new file mode 100644
index 0000000..60f1d38
--- /dev/null
+++ b/assets/icons/coca.svg
@@ -0,0 +1 @@
+
diff --git a/assets/icons/fanta.svg b/assets/icons/fanta.svg
new file mode 100644
index 0000000..04efb52
--- /dev/null
+++ b/assets/icons/fanta.svg
@@ -0,0 +1 @@
+
diff --git a/assets/icons/spuma.svg b/assets/icons/spuma.svg
new file mode 100644
index 0000000..35e8bbe
--- /dev/null
+++ b/assets/icons/spuma.svg
@@ -0,0 +1 @@
+
diff --git a/assets/voices/andrea-0d9794e650.mp3 b/assets/voices/andrea-0d9794e650.mp3
deleted file mode 100644
index e8ac258..0000000
Binary files a/assets/voices/andrea-0d9794e650.mp3 and /dev/null differ
diff --git a/assets/voices/andrea-139cc72b05.mp3 b/assets/voices/andrea-139cc72b05.mp3
new file mode 100644
index 0000000..0031e1f
Binary files /dev/null and b/assets/voices/andrea-139cc72b05.mp3 differ
diff --git a/assets/voices/andrea-6216c97894.mp3 b/assets/voices/andrea-6216c97894.mp3
new file mode 100644
index 0000000..9b7857b
Binary files /dev/null and b/assets/voices/andrea-6216c97894.mp3 differ
diff --git a/assets/voices/andrea-70fdbe36de.mp3 b/assets/voices/andrea-70fdbe36de.mp3
new file mode 100644
index 0000000..4bb7165
Binary files /dev/null and b/assets/voices/andrea-70fdbe36de.mp3 differ
diff --git a/assets/voices/andrea-9631d9ce30.mp3 b/assets/voices/andrea-9631d9ce30.mp3
new file mode 100644
index 0000000..6d6040f
Binary files /dev/null and b/assets/voices/andrea-9631d9ce30.mp3 differ
diff --git a/assets/voices/andrea-aaa51e9e69.mp3 b/assets/voices/andrea-aaa51e9e69.mp3
new file mode 100644
index 0000000..dcf911b
Binary files /dev/null and b/assets/voices/andrea-aaa51e9e69.mp3 differ
diff --git a/assets/voices/andrea-ae47136080.mp3 b/assets/voices/andrea-ae47136080.mp3
deleted file mode 100644
index 2403f04..0000000
Binary files a/assets/voices/andrea-ae47136080.mp3 and /dev/null differ
diff --git a/assets/voices/andrea-b143e9177f.mp3 b/assets/voices/andrea-b143e9177f.mp3
new file mode 100644
index 0000000..2dcd578
Binary files /dev/null and b/assets/voices/andrea-b143e9177f.mp3 differ
diff --git a/assets/voices/andrea-d13933a255.mp3 b/assets/voices/andrea-d13933a255.mp3
deleted file mode 100644
index 17673b7..0000000
Binary files a/assets/voices/andrea-d13933a255.mp3 and /dev/null differ
diff --git a/assets/voices/index.json b/assets/voices/index.json
index 855e902..8e60813 100644
--- a/assets/voices/index.json
+++ b/assets/voices/index.json
@@ -867,6 +867,30 @@
"file": "andrea-69907b4352.mp3",
"sec": 5.27
},
+ "andrea|Una Fanta ghiacciata, arancione come il tramonto.": {
+ "file": "andrea-9631d9ce30.mp3",
+ "sec": 3.18
+ },
+ "andrea|Glu glu... arancione fino alle orecchie.": {
+ "file": "andrea-aaa51e9e69.mp3",
+ "sec": 4.08
+ },
+ "andrea|Una Coca col vetro appannato dal freddo.": {
+ "file": "andrea-70fdbe36de.mp3",
+ "sec": 2.52
+ },
+ "andrea|Fa le bollicine nel naso. Come sempre.": {
+ "file": "andrea-b143e9177f.mp3",
+ "sec": 3.34
+ },
+ "andrea|Una spuma bionda. Ormai la chiedono solo i nonni. E io.": {
+ "file": "andrea-139cc72b05.mp3",
+ "sec": 5.12
+ },
+ "andrea|Buona come ai tempi della festa.": {
+ "file": "andrea-6216c97894.mp3",
+ "sec": 2.06
+ },
"andrea|Lo stecco del ghiacciolo. Appiccica ancora un po' di limone.": {
"file": "andrea-942c0fe126.mp3",
"sec": 4.23
@@ -915,26 +939,14 @@
"file": "tosca-133c83efc3.mp3",
"sec": 1.79
},
- "andrea|Glu glu... arancione fino alle orecchie. Grazie, Tosca!": {
- "file": "andrea-ae47136080.mp3",
- "sec": 6.05
- },
- "tosca|Tieni.": {
- "file": "tosca-db5640a086.mp3",
- "sec": 0.46
- },
- "andrea|Fa le bollicine nel naso. Come sempre. Grazie!": {
- "file": "andrea-d13933a255.mp3",
- "sec": 4.57
+ "tosca|Tieni, col vetro appannato.": {
+ "file": "tosca-01b56ee7c1.mp3",
+ "sec": 1.9
},
"tosca|La spuma bionda! Ormai la chiedono solo i nonni.": {
"file": "tosca-b4008e55ce.mp3",
"sec": 3.8
},
- "andrea|E io. Buona come ai tempi della festa.": {
- "file": "andrea-0d9794e650.mp3",
- "sec": 3.05
- },
"tosca|Cedrata. Bella fresca.": {
"file": "tosca-d6b114d197.mp3",
"sec": 2.24
diff --git a/assets/voices/tosca-01b56ee7c1.mp3 b/assets/voices/tosca-01b56ee7c1.mp3
new file mode 100644
index 0000000..ee14f86
Binary files /dev/null and b/assets/voices/tosca-01b56ee7c1.mp3 differ
diff --git a/assets/voices/tosca-db5640a086.mp3 b/assets/voices/tosca-db5640a086.mp3
deleted file mode 100644
index 3d8bb79..0000000
Binary files a/assets/voices/tosca-db5640a086.mp3 and /dev/null differ
diff --git a/src/story/story.js b/src/story/story.js
index 97ff510..f6f2b07 100644
--- a/src/story/story.js
+++ b/src/story/story.js
@@ -92,6 +92,33 @@ export const story = {
use: [{ say: 'Bevuta liscia è sprecata. Ci vuole qualcosa da inzupparci dentro.' }],
},
},
+ fanta: {
+ name: 'Fanta',
+ icon: { src: 'assets/icons/fanta.svg' },
+ droppable: true,
+ actions: {
+ look: [{ say: 'Una Fanta ghiacciata, arancione come il tramonto.' }],
+ use: [{ drop: 'fanta' }, { say: 'Glu glu... arancione fino alle orecchie.' }],
+ },
+ },
+ coca: {
+ name: 'Coca',
+ icon: { src: 'assets/icons/coca.svg' },
+ droppable: true,
+ actions: {
+ look: [{ say: 'Una Coca col vetro appannato dal freddo.' }],
+ use: [{ drop: 'coca' }, { say: 'Fa le bollicine nel naso. Come sempre.' }],
+ },
+ },
+ spuma: {
+ name: 'spuma bionda',
+ icon: { src: 'assets/icons/spuma.svg' },
+ droppable: true,
+ actions: {
+ look: [{ say: 'Una spuma bionda. Ormai la chiedono solo i nonni. E io.' }],
+ use: [{ drop: 'spuma' }, { say: 'Buona come ai tempi della festa.' }],
+ },
+ },
stecco: {
name: 'stecco',
icon: { src: 'assets/icons/stecco.svg' },
@@ -1369,9 +1396,9 @@ export const story = {
nodes: {
start: {
options: [
- { text: 'Una Fanta.', then: [{ say: 'Eccola, ghiacciata.', who: 'tosca' }, { say: 'Glu glu... arancione fino alle orecchie. Grazie, Tosca!' }] },
- { text: 'Una Coca.', then: [{ say: 'Tieni.', who: 'tosca' }, { say: 'Fa le bollicine nel naso. Come sempre. Grazie!' }] },
- { text: 'Una spuma bionda.', then: [{ say: 'La spuma bionda! Ormai la chiedono solo i nonni.', who: 'tosca' }, { say: 'E io. Buona come ai tempi della festa.' }] },
+ { text: 'Una Fanta.', when: '!has:fanta', then: [{ say: 'Eccola, ghiacciata.', who: 'tosca' }, { give: 'fanta' }] },
+ { text: 'Una Coca.', when: '!has:coca', then: [{ say: 'Tieni, col vetro appannato.', who: 'tosca' }, { give: 'coca' }] },
+ { text: 'Una spuma bionda.', when: '!has:spuma', then: [{ say: 'La spuma bionda! Ormai la chiedono solo i nonni.', who: 'tosca' }, { give: 'spuma' }] },
{ text: 'Una cedrata, da portare via.', when: ['!has:cedrata', '!stecco_fatto'], then: [{ say: 'Cedrata. Bella fresca.', who: 'tosca' }, { give: 'cedrata' }] },
{ text: 'Un ghiacciolo al limone.', when: ['!has:ghiacciolo', '!stecco_fatto'], then: [{ say: 'Al limone, l\'ultimo della cassetta.', who: 'tosca' }, { give: 'ghiacciolo' }] },
{ text: 'Niente, grazie Tosca.', next: 'end', then: [{ say: 'Quando ti viene sete, sai dove trovarmi.', who: 'tosca' }] },
diff --git a/tests/story.test.mjs b/tests/story.test.mjs
index 713d396..ed42451 100644
--- a/tests/story.test.mjs
+++ b/tests/story.test.mjs
@@ -210,7 +210,7 @@ test('si buttano solo gli oggetti che non servono', () => {
settle(g);
assert.deepEqual(g.state.inventory, ['squama']);
for (const [id, item] of Object.entries(story.items))
- if (id !== 'libro') assert.ok(!item.droppable, `${id} serve alla storia: non deve potersi buttare`);
+ if (!['libro', 'fanta', 'coca', 'spuma'].includes(id)) assert.ok(!item.droppable, `${id} serve alla storia: non deve potersi buttare`);
});
test('ogni oggetto ha la sua icona a pixel', () => {
@@ -238,9 +238,12 @@ test('la catena del ghiacciolo: Tosca, cedrata, stecco, gomma, griglia, chiavett
const answer = text => { const i = g.options().findIndex(o => o.text === text); assert.ok(i >= 0, `manca «${text}»`); g.choose(i); say(); };
g.go('tennis_chiesa'); say();
g.act('talk', 'chiosco'); say();
+ answer('Una Coca.');
+ assert.deepEqual(g.state.inventory, ['coca'], 'la Coca finisce nell\'inventario');
answer('Un ghiacciolo al limone.');
answer('Una cedrata, da portare via.');
answer('Niente, grazie Tosca.');
+ g.act('use', 'coca'); say();
assert.deepEqual(g.state.inventory, ['ghiacciolo', 'cedrata']);
g.act('use', 'cedrata', 'ghiacciolo'); say();
assert.deepEqual(g.state.inventory, ['stecco'], 'inzuppato e mangiato: resta lo stecco');