38aa0752cb04caaeb302e1d392b1ea645c4580a3
test: 37 frontend tests (App integration, API service, achievements), 43 backend tests — all passing
🐴 My Little Pony: Tails of Equestria
En interaktiv digital rollespil baseret på My Little Pony-universet, designet til børn.
✨ Funktioner
- 8 unikke temaer — hver med 5 scener (terningkast, valg, farvergætning, hukommelse)
- 4 pony-typer — Jordpony, Pegasus, Enhjørning, Alicorn med unikke statsbonuser
- Terningsystem — enkelt terning (1d6) med stat-baseret sværhedsgrad
- Stemmeinteraktion — talegenkendelse (STT) og talesyntese (TTS) på dansk
- Pixel-pony konfigurator — tilpas farve, man, øjne, horn/vinger og navn
- Lysstyrke-kontrol — tilpas skærmlyset for komfort
- Fulldunderstand — fullscreen-support for immersiv oplevelse
🏗️ Arkitektur
┌─────────────────────┐ ┌──────────────────┐
│ React Frontend │────▶│ Flask Backend │
│ (pony-frontend/) │ │ (web/) │
│ - React 19 │ │ - REST API │
│ - Framer Motion │ │ - Dice engine │
│ - Voice integration │ │ - STT/TTS │
└─────────────────────┘ └──────────────────┘
Frontend
- React 19 med Create React App
- Framer Motion for animationer
- Komponenter: VoiceButton, FullscreenButton, VoiceFlow
- Tjenester: API-klient, TTS, narration, voiceFlow
Backend
- Flask REST API
- Terningsystem:
target = 6 - stat + penalty - talent_bonus(clamped 1-6) - Tale-syntese (TTS) og tale-genkendelse (STT) på dansk
- Intent-klassificering via Hermes AI
- SQLite-persistering (valgfri)
📖 Terningsystem
| Stat | Type | Bonus |
|---|---|---|
| Krop | Fysisk styrke | +1 (Jordpony, Pegasus) |
| Sind | Mental styrke | +1 (Enhjørning) |
| Charme | Social styrke | +1 (Alicorn) |
Formel: target = 6 - stat + penalty - talent_bonus
| Sværhed | Penalty |
|---|---|
| Let | 0 |
| Normal | 1 |
| Svær | 2 |
🎮 Gameplay-flow
Hvert tema har 5 scener med fast mønster:
- Terningkast — let/normal sværhed
- Valg — 4 muligheder (modig/klog/ven/magi)
- Farvergætning — 4 farver, 1 korrekt
- Terningkast — normal/svær sværhed
- Hukommelse — husk et tal fra tidligere i historien
🚀 Kom i gang
Krav
- Python 3.10+
- Node.js 18+
- npm
Backend
cd web
python -m venv .venv
source .venv/bin/activate
pip install flask gunicorn
# Start serveren
python -m app
Frontend
cd pony-frontend
npm install
npm start
🌐 API
| Endpoint | Metode | Beskrivelse |
|---|---|---|
/api/start |
POST | Start nyt spil {type, tema, navn?} |
/api/kast |
POST | Kast terning for nuværende scene |
/api/interact |
POST | Farve/tal/valg {selection} |
/api/scene |
GET | Hent nuværende scene |
/api/reset |
POST | Nulstil spil |
/api/content |
GET | Pony-typer og temaer |
/api/health |
GET | Health check |
/api/tts |
POST | Dansk talesyntese |
/api/v1/games/{id}/voice |
POST | Audio-svar (STT + intent) |
/api/v1/games/{id}/voice/text |
POST | Tekst-svar |
📊 Balance
| Pony-type | Bonus | Sejr-rate |
|---|---|---|
| Jordpony | +1 krop | 40% |
| Pegasus | +1 krop | 45% |
| Enhjørning | +1 sind | 53% |
| Alicorn | +1 alle | 56% |
Samlet sejr-rate: 48% (mål: 40-60%)
📁 Vigtige filer
web/app/game/dice.py— terningsystemweb/app/data/themes.py— 8 temaer, 5 scener hverweb/app/services/game_service.py— scene-orchestrationweb/app/routes/api.py— REST endpointsweb/app/services/text_to_speech.py— TTSpony-frontend/src/App.js— hovedkomponentpony-frontend/src/components/VoiceButton.js— stemmeknappony-frontend/src/services/voiceFlow.js— stemme-flow
📝 Udvikling
Se DEVELOPER_NOTES.md for detaljer om terningsystem, balance, og UI.
📄 Licens
Projektet er open source.
Description
Languages
Python
54.5%
JavaScript
33.3%
CSS
10.2%
HTML
1.9%