feat: rozšíření chytání motýlků o progres, mince a škůdce
CI / Generate TypeScript types (push) Successful in 10s
CI / Server unit tests (push) Successful in 23s
CI / Build server (push) Successful in 27s
CI / Build client (push) Successful in 46s
CI / Playwright E2E tests (push) Successful in 1m25s
CI / Build and push Docker image (push) Successful in 44s
CI / Notify (push) Successful in 2s

- serverová perzistence statistik (mince, úrovně, zlatí motýli) + týmový žebříček
- prémiová zlatá síťka za milník (větší, magnetická, odolná proti ptákům)
- perzistentní škůdci: vosy na zaklikání a ptáci trhající síťku (F5-proof)
- placený plašič ptáků s odpočtem, denní bonus, kombo
- WOW zlatý motýl + osobní statistiky v modalu žebříčku
- oprava zobrazení ikonek (root-absolutní cesty k public assetům)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stánek Pavel
2026-07-22 11:59:17 +02:00
co-authored by Claude Opus 4.8
parent c8c5ecc60c
commit c5ca6c9d41
25 changed files with 2454 additions and 205 deletions
+125
View File
@@ -926,3 +926,128 @@ PendingQr:
groupId:
description: ID skupiny objednávky, ke které QR patří
type: string
# --- CHYTÁNÍ MOTÝLKŮ ---
ButterflyStats:
description: Statistiky chytání motýlků pro jednoho uživatele
type: object
additionalProperties: false
required:
- caught
- coins
- goldenCaught
- level
- title
- wasps
- birds
- waspsKilled
- birdsScared
- repellentUntil
- netTorn
properties:
caught:
description: Celkový počet chycených motýlů
type: integer
coins:
description: Aktuální počet mincí k utracení
type: integer
goldenCaught:
description: Počet chycených vzácných zlatých motýlů
type: integer
level:
description: Aktuální úroveň sběratele (odvozená z počtu chycených)
type: integer
title:
description: Titul odpovídající aktuální úrovni
type: string
lastCatchDay:
description: Datum posledního úlovku (YYYY-MM-DD) pro denní bonus
type: string
wasps:
description: Aktuální počet poletujících vos (perzistentní, přibývají v čase)
type: integer
birds:
description: Aktuální počet poletujících ptáků (perzistentní, přibývají v čase)
type: integer
waspsKilled:
description: Celkový počet zahubených vos
type: integer
birdsScared:
description: Celkový počet vyplašených ptáků (plašičem)
type: integer
repellentUntil:
description: Časové razítko (ms epoch), do kdy platí plašič ptáků; 0 = neaktivní
type: integer
netTorn:
description: Zda je síťka aktuálně protržená (nutná placená oprava)
type: boolean
ButterflyCatchRequest:
description: Dávka nachytaných motýlů k zaznamenání
type: object
additionalProperties: false
required:
- normal
- golden
properties:
normal:
description: Počet běžných motýlů chycených v této dávce
type: integer
golden:
description: Počet zlatých motýlů chycených v této dávce
type: integer
ButterflyCatchResult:
description: Výsledek zaznamenání dávky úlovků včetně přehledu odměn
type: object
additionalProperties: false
required:
- stats
- coinsAwarded
- dailyBonusApplied
- leveledUp
- premiumUnlocked
properties:
stats:
$ref: "#/ButterflyStats"
coinsAwarded:
description: Počet mincí připsaných za tuto dávku (základ + kombo + denní bonus)
type: integer
dailyBonusApplied:
description: Zda byl v této dávce připsán denní bonus za první úlovek dne
type: boolean
leveledUp:
description: Zda uživatel touto dávkou postoupil alespoň o jednu úroveň
type: boolean
premiumUnlocked:
description: Zda uživatel touto dávkou dosáhl milníku pro prémiovou síťku
type: boolean
ButterflyLeaderboardEntry:
description: Jeden záznam v žebříčku chytačů motýlů
type: object
additionalProperties: false
required:
- login
- caught
- goldenCaught
- level
- title
properties:
login:
description: Přihlašovací jméno chytače
type: string
caught:
description: Celkový počet chycených motýlů
type: integer
goldenCaught:
description: Počet chycených zlatých motýlů
type: integer
level:
description: Aktuální úroveň sběratele
type: integer
title:
description: Titul odpovídající aktuální úrovni
type: string
ButterflyLeaderboard:
description: Žebříček chytačů motýlů seřazený sestupně dle počtu chycených
type: array
items:
$ref: "#/ButterflyLeaderboardEntry"