Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a0bb7eea4 | ||
|
|
16759006b1 | ||
|
|
7c49c3e260 | ||
|
|
817cfbd7fd | ||
|
|
44485cff52 | ||
|
|
a0201fea18 | ||
|
|
c4bac08c02 | ||
|
|
7f0584f0fc | ||
|
|
447c150974 | ||
|
|
95e7777dbc | ||
|
|
26697cd9c2 | ||
|
|
de303c5825 | ||
|
|
1fabb6e543 | ||
|
|
32a3d8a7c5 | ||
|
|
4bda52d9ac | ||
|
|
ec008b5ea1 | ||
|
|
73f3418bab | ||
|
|
ce4e47a2ed | ||
|
|
f6fd2fdfdc | ||
|
|
9d9dc81bcb | ||
|
|
bc19d6be53 | ||
|
|
c54023083a | ||
|
|
af6861350d | ||
|
|
53da1e48f8 | ||
|
|
019c3110f9 | ||
|
|
17a4a01f6d | ||
|
|
fab64bb718 | ||
|
|
877b29a6e3 | ||
|
|
acc437a33c |
@@ -12,6 +12,7 @@ COPY assets/fonts /usr/share/nginx/html/assets/fonts
|
||||
COPY assets/voices /usr/share/nginx/html/assets/voices
|
||||
COPY assets/credits /usr/share/nginx/html/assets/credits
|
||||
COPY assets/effects /usr/share/nginx/html/assets/effects
|
||||
COPY assets/closeups /usr/share/nginx/html/assets/closeups
|
||||
|
||||
# Le immagini e i font citati da index.html e style.css prendono ?v=<versione>, come quelli caricati dal codice.
|
||||
RUN cd /usr/share/nginx/html \
|
||||
|
||||
@@ -143,6 +143,9 @@ deploy: ## Pubblica l'ultimo commit: test, immagine costruita e provata qui, spe
|
||||
scp -q $(DEPLOY_TMP)/docker-compose.homeserver.yml $(DEPLOY_HOST):$(DEPLOY_DIR)/docker-compose.yml
|
||||
docker save $(IMAGE):latest | gzip | ssh $(DEPLOY_HOST) 'gunzip | docker load -q && cd $(DEPLOY_DIR) && docker compose up -d && docker image prune -f >/dev/null'
|
||||
rm -rf $(DEPLOY_TMP)
|
||||
@# Sul server il prune toglie l'immagine vecchia; qui restano solo latest e quella appena pubblicata.
|
||||
@docker image ls $(IMAGE) --format '{{.Tag}}' | grep -v -x -e latest -e $$(git rev-parse --short HEAD) | \
|
||||
xargs -r -I{} docker image rm -f $(IMAGE):{} >/dev/null
|
||||
@echo "→ $(DEPLOY_URL) ($$(git log -1 --format='%h %s'))"
|
||||
|
||||
deploy-logs: ## Log del container sul server di deploy
|
||||
|
||||
@@ -41,6 +41,12 @@ python3 -m http.server 8000 # poi http://localhost:8000
|
||||
Clic = azione più sensata (parla, guarda, vai); clic destro o pressione lunga = guarda; un verbo scelto vale per il
|
||||
clic successivo. Spazio salta la battuta, i numeri scelgono nel dialogo, Esc annulla il verbo.
|
||||
|
||||
Il libro dell'oratorio si apre e si sfoglia con clic o tocco; Esc lo chiude. Nella fessura della Fortezza,
|
||||
la torcia segue mouse o dito (anche trascinando): si cercano i dettagli tenendo brevemente la luce su di essi.
|
||||
Si possono usare anche le frecce, oppure Invio per cercare il prossimo dettaglio. «Torna fuori» permette di
|
||||
riprovare; dopo il ritrovamento, «Continua» conclude il capitolo.
|
||||
Il volume dei suoni ambientali e del fruscio delle pagine si regola in **Pausa → Ambiente ed effetti**.
|
||||
|
||||
## In Docker
|
||||
|
||||
```zsh
|
||||
@@ -64,5 +70,6 @@ make down
|
||||
npm test # logica, storia coerente, soluzione percorsa dall'inizio alla fine
|
||||
npm install && npx playwright install chromium-headless-shell
|
||||
npm run browser # partita completa con clic veri in Chromium, salvataggio, telefono
|
||||
npm run browser -- --media-only # libro, torcia e audio: controllo mirato desktop/telefono
|
||||
```
|
||||
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"image": "arcu.png",
|
||||
"height": 120,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 42,
|
||||
"h": 120,
|
||||
"ax": 20.9,
|
||||
"ay": 120
|
||||
},
|
||||
"blink": {
|
||||
"x": 44,
|
||||
"y": 0,
|
||||
"w": 42,
|
||||
"h": 120,
|
||||
"ax": 20.3,
|
||||
"ay": 120
|
||||
},
|
||||
"talk": {
|
||||
"x": 88,
|
||||
"y": 0,
|
||||
"w": 42,
|
||||
"h": 120,
|
||||
"ax": 20.9,
|
||||
"ay": 120
|
||||
},
|
||||
"explain": {
|
||||
"x": 132,
|
||||
"y": 0,
|
||||
"w": 66,
|
||||
"h": 120,
|
||||
"ax": 24.3,
|
||||
"ay": 120
|
||||
},
|
||||
"laugh": {
|
||||
"x": 200,
|
||||
"y": 0,
|
||||
"w": 46,
|
||||
"h": 121,
|
||||
"ax": 17.8,
|
||||
"ay": 121
|
||||
},
|
||||
"point": {
|
||||
"x": 248,
|
||||
"y": 0,
|
||||
"w": 65,
|
||||
"h": 121,
|
||||
"ax": 24.9,
|
||||
"ay": 121
|
||||
},
|
||||
"shrug": {
|
||||
"x": 315,
|
||||
"y": 0,
|
||||
"w": 78,
|
||||
"h": 121,
|
||||
"ax": 36.9,
|
||||
"ay": 121
|
||||
},
|
||||
"arms_crossed": {
|
||||
"x": 395,
|
||||
"y": 0,
|
||||
"w": 43,
|
||||
"h": 121,
|
||||
"ax": 19.4,
|
||||
"ay": 121
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 90 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"image": "barondeduke.png",
|
||||
"height": 120,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 47,
|
||||
"h": 120,
|
||||
"ax": 21.7,
|
||||
"ay": 120
|
||||
},
|
||||
"blink": {
|
||||
"x": 49,
|
||||
"y": 0,
|
||||
"w": 47,
|
||||
"h": 120,
|
||||
"ax": 21.5,
|
||||
"ay": 120
|
||||
},
|
||||
"talk": {
|
||||
"x": 98,
|
||||
"y": 0,
|
||||
"w": 48,
|
||||
"h": 120,
|
||||
"ax": 21.8,
|
||||
"ay": 120
|
||||
},
|
||||
"explain": {
|
||||
"x": 148,
|
||||
"y": 0,
|
||||
"w": 61,
|
||||
"h": 120,
|
||||
"ax": 23.9,
|
||||
"ay": 120
|
||||
},
|
||||
"laugh": {
|
||||
"x": 211,
|
||||
"y": 0,
|
||||
"w": 53,
|
||||
"h": 117,
|
||||
"ax": 26.6,
|
||||
"ay": 117
|
||||
},
|
||||
"cards": {
|
||||
"x": 266,
|
||||
"y": 0,
|
||||
"w": 56,
|
||||
"h": 118,
|
||||
"ax": 24.1,
|
||||
"ay": 118
|
||||
},
|
||||
"shrug": {
|
||||
"x": 324,
|
||||
"y": 0,
|
||||
"w": 73,
|
||||
"h": 117,
|
||||
"ax": 35.7,
|
||||
"ay": 117
|
||||
},
|
||||
"facepalm": {
|
||||
"x": 399,
|
||||
"y": 0,
|
||||
"w": 53,
|
||||
"h": 117,
|
||||
"ax": 27.3,
|
||||
"ay": 117
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 84 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"image": "fra-peppino.png",
|
||||
"height": 120,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 50,
|
||||
"h": 120,
|
||||
"ax": 24.0,
|
||||
"ay": 120
|
||||
},
|
||||
"blink": {
|
||||
"x": 52,
|
||||
"y": 0,
|
||||
"w": 50,
|
||||
"h": 120,
|
||||
"ax": 23.9,
|
||||
"ay": 120
|
||||
},
|
||||
"talk": {
|
||||
"x": 104,
|
||||
"y": 0,
|
||||
"w": 50,
|
||||
"h": 120,
|
||||
"ax": 23.7,
|
||||
"ay": 120
|
||||
},
|
||||
"explain": {
|
||||
"x": 156,
|
||||
"y": 0,
|
||||
"w": 61,
|
||||
"h": 121,
|
||||
"ax": 27.6,
|
||||
"ay": 121
|
||||
},
|
||||
"laugh": {
|
||||
"x": 219,
|
||||
"y": 0,
|
||||
"w": 54,
|
||||
"h": 119,
|
||||
"ax": 24.3,
|
||||
"ay": 119
|
||||
},
|
||||
"bless": {
|
||||
"x": 275,
|
||||
"y": 0,
|
||||
"w": 58,
|
||||
"h": 119,
|
||||
"ax": 27.6,
|
||||
"ay": 119
|
||||
},
|
||||
"shrug": {
|
||||
"x": 335,
|
||||
"y": 0,
|
||||
"w": 91,
|
||||
"h": 119,
|
||||
"ax": 43.3,
|
||||
"ay": 119
|
||||
},
|
||||
"point": {
|
||||
"x": 428,
|
||||
"y": 0,
|
||||
"w": 76,
|
||||
"h": 119,
|
||||
"ax": 31.2,
|
||||
"ay": 119
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 103 KiB |
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"image": "macchina-tempo.png",
|
||||
"height": 158,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 361,
|
||||
"h": 158,
|
||||
"ax": 180,
|
||||
"ay": 152
|
||||
},
|
||||
"talk": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 361,
|
||||
"h": 158,
|
||||
"ax": 180,
|
||||
"ay": 152
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 91 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"image": "mariano.png",
|
||||
"height": 120,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 40,
|
||||
"h": 120,
|
||||
"ax": 17.8,
|
||||
"ay": 120
|
||||
},
|
||||
"blink": {
|
||||
"x": 42,
|
||||
"y": 0,
|
||||
"w": 40,
|
||||
"h": 120,
|
||||
"ax": 17.9,
|
||||
"ay": 120
|
||||
},
|
||||
"talk": {
|
||||
"x": 84,
|
||||
"y": 0,
|
||||
"w": 40,
|
||||
"h": 120,
|
||||
"ax": 17.9,
|
||||
"ay": 120
|
||||
},
|
||||
"explain": {
|
||||
"x": 126,
|
||||
"y": 0,
|
||||
"w": 60,
|
||||
"h": 120,
|
||||
"ax": 20.9,
|
||||
"ay": 120
|
||||
},
|
||||
"throw": {
|
||||
"x": 188,
|
||||
"y": 0,
|
||||
"w": 80,
|
||||
"h": 102,
|
||||
"ax": 51.5,
|
||||
"ay": 102
|
||||
},
|
||||
"laugh": {
|
||||
"x": 270,
|
||||
"y": 0,
|
||||
"w": 41,
|
||||
"h": 119,
|
||||
"ax": 16.9,
|
||||
"ay": 119
|
||||
},
|
||||
"measure": {
|
||||
"x": 313,
|
||||
"y": 0,
|
||||
"w": 72,
|
||||
"h": 91,
|
||||
"ax": 38.0,
|
||||
"ay": 91
|
||||
},
|
||||
"cheer": {
|
||||
"x": 387,
|
||||
"y": 0,
|
||||
"w": 63,
|
||||
"h": 118,
|
||||
"ax": 27.5,
|
||||
"ay": 118
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 96 KiB |
@@ -0,0 +1,70 @@
|
||||
{
|
||||
"image": "tozzino.png",
|
||||
"height": 120,
|
||||
"frames": {
|
||||
"stand": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 40,
|
||||
"h": 120,
|
||||
"ax": 20.6,
|
||||
"ay": 120
|
||||
},
|
||||
"blink": {
|
||||
"x": 42,
|
||||
"y": 0,
|
||||
"w": 41,
|
||||
"h": 120,
|
||||
"ax": 20.5,
|
||||
"ay": 120
|
||||
},
|
||||
"talk": {
|
||||
"x": 85,
|
||||
"y": 0,
|
||||
"w": 41,
|
||||
"h": 120,
|
||||
"ax": 20.6,
|
||||
"ay": 120
|
||||
},
|
||||
"explain": {
|
||||
"x": 128,
|
||||
"y": 0,
|
||||
"w": 65,
|
||||
"h": 120,
|
||||
"ax": 24.4,
|
||||
"ay": 120
|
||||
},
|
||||
"laugh": {
|
||||
"x": 195,
|
||||
"y": 0,
|
||||
"w": 40,
|
||||
"h": 120,
|
||||
"ax": 20.1,
|
||||
"ay": 120
|
||||
},
|
||||
"watch": {
|
||||
"x": 237,
|
||||
"y": 0,
|
||||
"w": 51,
|
||||
"h": 119,
|
||||
"ax": 25.5,
|
||||
"ay": 119
|
||||
},
|
||||
"look_far": {
|
||||
"x": 290,
|
||||
"y": 0,
|
||||
"w": 56,
|
||||
"h": 120,
|
||||
"ax": 27.9,
|
||||
"ay": 120
|
||||
},
|
||||
"bounce": {
|
||||
"x": 348,
|
||||
"y": 0,
|
||||
"w": 67,
|
||||
"h": 117,
|
||||
"ax": 21.1,
|
||||
"ay": 117
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 90 KiB |
@@ -5,65 +5,65 @@
|
||||
"sit": {
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 76,
|
||||
"w": 77,
|
||||
"h": 96,
|
||||
"ax": 31.4,
|
||||
"ax": 32.9,
|
||||
"ay": 96
|
||||
},
|
||||
"doze": {
|
||||
"x": 78,
|
||||
"x": 79,
|
||||
"y": 0,
|
||||
"w": 76,
|
||||
"w": 77,
|
||||
"h": 96,
|
||||
"ax": 31.5,
|
||||
"ax": 33.0,
|
||||
"ay": 96
|
||||
},
|
||||
"talk": {
|
||||
"x": 156,
|
||||
"x": 158,
|
||||
"y": 0,
|
||||
"w": 67,
|
||||
"w": 68,
|
||||
"h": 96,
|
||||
"ax": 25.1,
|
||||
"ax": 26.3,
|
||||
"ay": 96
|
||||
},
|
||||
"explain": {
|
||||
"x": 225,
|
||||
"x": 228,
|
||||
"y": 0,
|
||||
"w": 62,
|
||||
"w": 68,
|
||||
"h": 96,
|
||||
"ax": 27.4,
|
||||
"ax": 29.9,
|
||||
"ay": 96
|
||||
},
|
||||
"point": {
|
||||
"x": 289,
|
||||
"x": 298,
|
||||
"y": 0,
|
||||
"w": 74,
|
||||
"w": 78,
|
||||
"h": 97,
|
||||
"ax": 31.5,
|
||||
"ax": 33.3,
|
||||
"ay": 97
|
||||
},
|
||||
"laugh": {
|
||||
"x": 365,
|
||||
"x": 378,
|
||||
"y": 0,
|
||||
"w": 70,
|
||||
"w": 71,
|
||||
"h": 97,
|
||||
"ax": 23.2,
|
||||
"ax": 22.8,
|
||||
"ay": 97
|
||||
},
|
||||
"cat": {
|
||||
"x": 437,
|
||||
"x": 451,
|
||||
"y": 0,
|
||||
"w": 67,
|
||||
"h": 95,
|
||||
"ax": 24.1,
|
||||
"ay": 95
|
||||
"w": 68,
|
||||
"h": 96,
|
||||
"ax": 26.1,
|
||||
"ay": 96
|
||||
},
|
||||
"shrug": {
|
||||
"x": 506,
|
||||
"x": 521,
|
||||
"y": 0,
|
||||
"w": 81,
|
||||
"w": 83,
|
||||
"h": 97,
|
||||
"ax": 38.9,
|
||||
"ax": 40.2,
|
||||
"ay": 97
|
||||
}
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 143 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 56 KiB |
|
After Width: | Height: | Size: 324 KiB |