Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1205192e8a | ||
|
|
aa2f547856 | ||
|
|
57e72de021 |
@@ -24,7 +24,7 @@ CROP ?=
|
|||||||
COLORS ?= 64
|
COLORS ?= 64
|
||||||
|
|
||||||
.PHONY: help serve open test browser verify check-public bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \
|
.PHONY: help serve open test browser verify check-public bump voci voci-elenco sfondi sfondi-genera sfondi-confronto background character \
|
||||||
build up down restart logs ps shell image-size deploy deploy-logs clean distclean
|
build up down restart logs ps shell image-size deploy deploy-vps deploy-logs clean distclean
|
||||||
|
|
||||||
## ------------------------------------------------------------ sviluppo
|
## ------------------------------------------------------------ sviluppo
|
||||||
|
|
||||||
@@ -124,6 +124,8 @@ image-size: ## Dimensione dell'immagine
|
|||||||
# Host e indirizzo stanno in deploy.local.mk, fuori da git, per esempio:
|
# Host e indirizzo stanno in deploy.local.mk, fuori da git, per esempio:
|
||||||
# DEPLOY_HOST = root@mio-server
|
# DEPLOY_HOST = root@mio-server
|
||||||
# DEPLOY_URL = https://gioco.esempio
|
# DEPLOY_URL = https://gioco.esempio
|
||||||
|
# VPS_HOST = mio-vps (facoltativo: una seconda copia, con make deploy-vps)
|
||||||
|
# VPS_DIR = docker/leggenda-regolo
|
||||||
-include deploy.local.mk
|
-include deploy.local.mk
|
||||||
DEPLOY_DIR ?= /root/leggenda-regolo
|
DEPLOY_DIR ?= /root/leggenda-regolo
|
||||||
DEPLOY_TMP := $(shell mktemp -d -u /tmp/regolo-deploy.XXXXXX)
|
DEPLOY_TMP := $(shell mktemp -d -u /tmp/regolo-deploy.XXXXXX)
|
||||||
@@ -151,6 +153,16 @@ deploy: ## Pubblica l'ultimo commit: test, immagine costruita e provata qui, spe
|
|||||||
xargs -r -I{} docker image rm -f $(IMAGE):{} >/dev/null
|
xargs -r -I{} docker image rm -f $(IMAGE):{} >/dev/null
|
||||||
@echo "→ $(DEPLOY_URL) ($$(git log -1 --format='%h %s'))"
|
@echo "→ $(DEPLOY_URL) ($$(git log -1 --format='%h %s'))"
|
||||||
|
|
||||||
|
deploy-vps: ## Spedisce al VPS (VPS_HOST, VPS_DIR in deploy.local.mk) l'immagine dell'ultimo commit già provata da make deploy
|
||||||
|
@test -n "$(VPS_HOST)" -a -n "$(VPS_DIR)" || { echo "mancano VPS_HOST e VPS_DIR: scrivili in deploy.local.mk"; exit 2; }
|
||||||
|
@docker image inspect $(IMAGE):$$(git rev-parse --short HEAD) >/dev/null 2>&1 || \
|
||||||
|
{ echo "manca l'immagine dell'ultimo commit ($$(git rev-parse --short HEAD)): prima make deploy"; exit 1; }
|
||||||
|
ssh $(VPS_HOST) 'mkdir -p $(VPS_DIR)'
|
||||||
|
git show HEAD:docker-compose.homeserver.yml | ssh $(VPS_HOST) 'cat > $(VPS_DIR)/docker-compose.yml'
|
||||||
|
docker save $(IMAGE):$$(git rev-parse --short HEAD) $(IMAGE):latest | gzip | \
|
||||||
|
ssh $(VPS_HOST) 'gunzip | docker load -q && cd $(VPS_DIR) && docker compose up -d && docker image prune -f >/dev/null'
|
||||||
|
@ssh $(VPS_HOST) "docker exec $(IMAGE) grep -o \"VERSION = '[^']*'\" /usr/share/nginx/html/src/version.js" | sed 's/^/→ $(VPS_HOST): /'
|
||||||
|
|
||||||
deploy-logs: ## Log del container sul server di deploy
|
deploy-logs: ## Log del container sul server di deploy
|
||||||
@test -n "$(DEPLOY_HOST)" || { echo "manca DEPLOY_HOST: scrivilo in deploy.local.mk"; exit 2; }
|
@test -n "$(DEPLOY_HOST)" || { echo "manca DEPLOY_HOST: scrivilo in deploy.local.mk"; exit 2; }
|
||||||
ssh $(DEPLOY_HOST) 'cd $(DEPLOY_DIR) && docker compose logs -f --tail 50'
|
ssh $(DEPLOY_HOST) 'cd $(DEPLOY_DIR) && docker compose logs -f --tail 50'
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 6.1 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 475 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1351,6 +1351,22 @@
|
|||||||
"file": "andrea-bbd7781659.mp3",
|
"file": "andrea-bbd7781659.mp3",
|
||||||
"sec": 4.13
|
"sec": 4.13
|
||||||
},
|
},
|
||||||
|
"andrea|Lassù spuntano i cipressi: il viale del Trebbio. Ancora un pezzo di salita.": {
|
||||||
|
"file": "andrea-429dbaf7e2.mp3",
|
||||||
|
"sec": 5.52
|
||||||
|
},
|
||||||
|
"andrea|Un cartello bianco. Bianco e basta: chi l'ha messo s'è scordato cosa ci voleva scrivere.": {
|
||||||
|
"file": "andrea-d1d027b75a.mp3",
|
||||||
|
"sec": 6.82
|
||||||
|
},
|
||||||
|
"andrea|Un muretto di sassi e mattoni: buono per riprendere fiato a metà salita.": {
|
||||||
|
"file": "andrea-9b8f4b41ad.mp3",
|
||||||
|
"sec": 4.59
|
||||||
|
},
|
||||||
|
"andrea|Mi siederei, ma se mi siedo ora non mi rialzo più.": {
|
||||||
|
"file": "andrea-093f6aff9c.mp3",
|
||||||
|
"sec": 3.56
|
||||||
|
},
|
||||||
"andrea|Giù a destra, oltre le vigne, c'è la casa del maestro Bacci. Mezzo paese ha imparato a leggere e scrivere da lui.": {
|
"andrea|Giù a destra, oltre le vigne, c'è la casa del maestro Bacci. Mezzo paese ha imparato a leggere e scrivere da lui.": {
|
||||||
"file": "andrea-060513a152.mp3",
|
"file": "andrea-060513a152.mp3",
|
||||||
"sec": 8.65
|
"sec": 8.65
|
||||||
|
|||||||
@@ -214,6 +214,10 @@ I prompt fissi (stile, scene, foglio sprite) sono in `prompts/STILE.md`, escluso
|
|||||||
- Il sentiero della Fortezza (foto di Andrea, 28 ottobre, sfondo di Codex): fra la Fortezza (a diritto) e la casa del
|
- Il sentiero della Fortezza (foto di Andrea, 28 ottobre, sfondo di Codex): fra la Fortezza (a diritto) e la casa del
|
||||||
maestro Bacci (alle spalle), che non sono più collegate direttamente. La pozza c'è anche il 15 d'agosto (Andrea).
|
maestro Bacci (alle spalle), che non sono più collegate direttamente. La pozza c'è anche il 15 d'agosto (Andrea).
|
||||||
Il nome del sentiero è provvisorio.
|
Il nome del sentiero è provvisorio.
|
||||||
|
- La salita dei cipressi (foto di Andrea, 28 ottobre, sfondo di Codex): la strada bianca fra la casa del maestro
|
||||||
|
Bacci (alle spalle) e il viale dei cipressi (lassù spuntano i cipressi). Nome provvisorio, battute provvisorie.
|
||||||
|
- Seconda copia del gioco sul VPS Contabo con `make deploy-vps` (dopo `make deploy`). Per renderla pubblica serve
|
||||||
|
nel proxy del VPS la regola per 50037.manzolo.it; poi si sposta il DNS su Aruba.
|
||||||
- Via Pietro Cipriani (fra Piazza e campeggio): Cinema Taiuti aperto con la locandina del Rattattù 2007 (stile da
|
- Via Pietro Cipriani (fra Piazza e campeggio): Cinema Taiuti aperto con la locandina del Rattattù 2007 (stile da
|
||||||
`assets/raw/riferimenti/rattattu-locandina.png`, scaletta illeggibile). Al campo da basket del Circolo, «Fai due tiri»
|
`assets/raw/riferimenti/rattattu-locandina.png`, scaletta illeggibile). Al campo da basket del Circolo, «Fai due tiri»
|
||||||
(`src/engine/basket.js`, vista di lato, sfondo e sprite di Andrea col pallone da Codex): da solo, dieci palloni, a ogni
|
(`src/engine/basket.js`, vista di lato, sfondo e sprite di Andrea col pallone da Codex): da solo, dieci palloni, a ogni
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "leggenda-del-regolo",
|
"name": "leggenda-del-regolo",
|
||||||
"version": "0.1.29",
|
"version": "0.1.30",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -80,6 +80,11 @@ export const ambience = {
|
|||||||
butterfly([150, 170, 150, 60], 5000),
|
butterfly([150, 170, 150, 60], 5000),
|
||||||
{ type: 'lamps', phase: 'sera', points: [[616, 118]], glow: 12 },
|
{ type: 'lamps', phase: 'sera', points: [[616, 118]], glow: 12 },
|
||||||
],
|
],
|
||||||
|
salita_cipressi: [
|
||||||
|
{ type: 'clouds', area: [260, 0, 200, 110], count: 2 },
|
||||||
|
{ type: 'sway', rects: [[312, 118, 24, 70]], amount: 1 },
|
||||||
|
butterfly([380, 220, 180, 60], 4000),
|
||||||
|
],
|
||||||
sentiero_fortezza: [
|
sentiero_fortezza: [
|
||||||
{ type: 'cloudshadow', phase: day, area: [0, 180, 640, 180], offset: 5000, clip: rect([0, 180, 640, 180]) },
|
{ type: 'cloudshadow', phase: day, area: [0, 180, 640, 180], offset: 5000, clip: rect([0, 180, 640, 180]) },
|
||||||
butterfly([380, 200, 160, 70], 8000),
|
butterfly([380, 200, 160, 70], 8000),
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ export const soundscapes = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const groups = {
|
const groups = {
|
||||||
bosco: ['bosco_ai_frati', 'sentiero_fortezza', 'viale_cipressi', 'trebbio', 'salita_fortezza', 'casa_maestro_bacci', 'campo_giannini', 'area_camper', 'giardini_poste'],
|
bosco: ['bosco_ai_frati', 'sentiero_fortezza', 'salita_cipressi', 'viale_cipressi', 'trebbio', 'salita_fortezza', 'casa_maestro_bacci', 'campo_giannini', 'area_camper', 'giardini_poste'],
|
||||||
acqua: ['ponte_sieve', 'campomigliaio_ponte', 'verso_luna'],
|
acqua: ['ponte_sieve', 'campomigliaio_ponte', 'verso_luna'],
|
||||||
pieve: ['pieve', 'pieve_interno', 'oratorio'],
|
pieve: ['pieve', 'pieve_interno', 'oratorio'],
|
||||||
circolo: ['campomigliaio_circolo', 'tennis_chiesa', 'area_feste_festa'],
|
circolo: ['campomigliaio_circolo', 'tennis_chiesa', 'area_feste_festa'],
|
||||||
|
|||||||
+39
-2
@@ -2259,6 +2259,43 @@ export const story = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
// La salita bianca fra la casa del maestro Bacci (alle spalle) e il viale dei cipressi (lassù spuntano i
|
||||||
|
// cipressi): foto di Andrea, 28 ottobre.
|
||||||
|
salita_cipressi: {
|
||||||
|
name: 'La salita dei cipressi',
|
||||||
|
map: [55, 10],
|
||||||
|
background: 'assets/scenes/salita-cipressi.png',
|
||||||
|
walk: [[0, 360], [0, 317], [208, 258], [298, 190], [333, 188], [417, 233], [583, 300], [640, 325], [640, 360]],
|
||||||
|
depth: [[188, 0.3], [360, 1.15]],
|
||||||
|
entry: [320, 350],
|
||||||
|
hotspots: [
|
||||||
|
{
|
||||||
|
id: 'cipressi', name: 'cipressi', box: [310, 118, 26, 70], at: [316, 200], face: 'up',
|
||||||
|
actions: {
|
||||||
|
look: [{ say: 'Lassù spuntano i cipressi: il viale del Trebbio. Ancora un pezzo di salita.' }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'cartello', name: 'cartello', box: [104, 144, 26, 26], at: [150, 280], face: 'left',
|
||||||
|
actions: {
|
||||||
|
look: [{ say: 'Un cartello bianco. Bianco e basta: chi l\'ha messo s\'è scordato cosa ci voleva scrivere.' }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'muretto', name: 'muretto', box: [0, 232, 112, 60], at: [120, 300], face: 'left',
|
||||||
|
actions: {
|
||||||
|
look: [{ say: 'Un muretto di sassi e mattoni: buono per riprendere fiato a metà salita.' }],
|
||||||
|
use: [{ say: 'Mi siederei, ma se mi siedo ora non mi rialzo più.' }],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'ai_cipressi', name: 'su, verso i cipressi', box: [290, 162, 66, 32], at: [316, 194], exit: { scene: 'viale_cipressi', at: [300, 350], face: 'up' },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'alla_casa_bacci', name: 'indietro, verso la casa del maestro Bacci', box: [0, 334, 640, 26], at: [320, 354], exit: { scene: 'casa_maestro_bacci', at: [138, 226], face: 'down' },
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
// Fra la Fortezza e i cipressi: la stradina fra le vigne, la casa del maestro Bacci, e lassù il Trebbio.
|
// Fra la Fortezza e i cipressi: la stradina fra le vigne, la casa del maestro Bacci, e lassù il Trebbio.
|
||||||
casa_maestro_bacci: {
|
casa_maestro_bacci: {
|
||||||
name: 'La casa del maestro Bacci',
|
name: 'La casa del maestro Bacci',
|
||||||
@@ -2288,7 +2325,7 @@ export const story = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'ai_cipressi', name: 'avanti, verso i cipressi e il Trebbio', box: [120, 150, 56, 30], at: [138, 226], exit: { scene: 'viale_cipressi', at: [300, 350], face: 'up' },
|
id: 'ai_cipressi', name: 'avanti, verso i cipressi e il Trebbio', box: [120, 150, 56, 30], at: [138, 226], exit: { scene: 'salita_cipressi', at: [320, 350], face: 'up' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'alla_fortezza', name: 'indietro, verso la Fortezza', box: [0, 330, 240, 30], at: [120, 354], exit: { scene: 'sentiero_fortezza', at: [320, 350], face: 'up' },
|
id: 'alla_fortezza', name: 'indietro, verso la Fortezza', box: [0, 330, 240, 30], at: [120, 354], exit: { scene: 'sentiero_fortezza', at: [320, 350], face: 'up' },
|
||||||
@@ -2692,7 +2729,7 @@ export const story = {
|
|||||||
id: 'al_trebbio', name: 'in fondo, verso il Trebbio', box: [262, 214, 76, 50], at: [300, 256], exit: { scene: 'trebbio', at: [110, 345], face: 'right' },
|
id: 'al_trebbio', name: 'in fondo, verso il Trebbio', box: [262, 214, 76, 50], at: [300, 256], exit: { scene: 'trebbio', at: [110, 345], face: 'right' },
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 'alla_fortezza', name: 'indietro, verso la casa del maestro Bacci', box: [0, 330, 640, 30], at: [300, 352], exit: { scene: 'casa_maestro_bacci', at: [138, 226], face: 'down' },
|
id: 'alla_fortezza', name: 'indietro, verso la casa del maestro Bacci', box: [0, 330, 640, 30], at: [300, 352], exit: { scene: 'salita_cipressi', at: [316, 196], face: 'down' },
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|||||||
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
// La versione del gioco: la cambia scripts/bump.sh, insieme a package.json.
|
// La versione del gioco: la cambia scripts/bump.sh, insieme a package.json.
|
||||||
export const VERSION = '0.1.29';
|
export const VERSION = '0.1.30';
|
||||||
|
|
||||||
// Immagini, musiche e voci con ?v=<versione>: a ogni versione l'indirizzo cambia e il browser le riscarica,
|
// Immagini, musiche e voci con ?v=<versione>: a ogni versione l'indirizzo cambia e il browser le riscarica,
|
||||||
// mentre fra una versione e l'altra le tiene in cache a lungo (nginx.conf).
|
// mentre fra una versione e l'altra le tiene in cache a lungo (nginx.conf).
|
||||||
|
|||||||
Reference in New Issue
Block a user