feat: obchod, černé můry, netopýr, pavouk a denní úkoly u chytání motýlků
CI / Generate TypeScript types (push) Successful in 15s
CI / Server unit tests (push) Successful in 23s
CI / Build server (push) Successful in 29s
CI / Build client (push) Successful in 1m2s
CI / Playwright E2E tests (push) Successful in 1m33s
CI / Build and push Docker image (push) Successful in 49s
CI / Notify (push) Successful in 1s

- obchod s pomůckami a trvalými vylepšeními (větší síťka, strašák, zpevněná síťka) – mince mají trvalý smysl
- černé můry se míchají mezi motýly; chycení (i magnetem) ubere hodně úlovků
- ptáci silnější, plašič dražší a kratší, zloději chodí častěji podle bohatství
- denní úkol s odměnou + achievementy/odznaky
- netopýr v noci loví motýly, pavouk zamotá síťku pavučinou – oba na zaklikání
- nákupní hlášky rozlišují nedostatek mincí od jiné chyby; herní smyčka se pozastaví při skryté záložce

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Stánek Pavel
2026-07-27 10:23:09 +02:00
co-authored by Claude Opus 4.8
parent e3f439bde0
commit 252d105408
22 changed files with 1384 additions and 43 deletions
+12
View File
@@ -102,6 +102,18 @@ paths:
$ref: "./paths/butterflies/caterpillarAte.yml"
/butterflies/defeatCaterpillar:
$ref: "./paths/butterflies/defeatCaterpillar.yml"
/butterflies/moth:
$ref: "./paths/butterflies/moth.yml"
/butterflies/buyPremium:
$ref: "./paths/butterflies/buyPremium.yml"
/butterflies/waspSpray:
$ref: "./paths/butterflies/waspSpray.yml"
/butterflies/insurance:
$ref: "./paths/butterflies/insurance.yml"
/butterflies/buyUpgrade:
$ref: "./paths/butterflies/buyUpgrade.yml"
/butterflies/achievements:
$ref: "./paths/butterflies/achievements.yml"
/butterflies/leaderboard:
$ref: "./paths/butterflies/leaderboard.yml"
+10
View File
@@ -0,0 +1,10 @@
get:
operationId: getButterflyAchievements
summary: Vrátí seznam achievementů (odznaků) přihlášeného uživatele.
responses:
"200":
description: Seznam achievementů se stavem odemčení.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyAchievementList"
+12
View File
@@ -0,0 +1,12 @@
post:
operationId: buyPremiumNet
summary: Koupí okamžitou aktivaci prémiové síťky za mince.
responses:
"200":
description: Aktualizované statistiky po koupi.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyStats"
"402":
description: Nedostatek mincí.
+20
View File
@@ -0,0 +1,20 @@
post:
operationId: buyUpgrade
summary: Koupí další úroveň trvalého vylepšení (cena se s úrovní zdvojnásobuje).
requestBody:
required: true
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyUpgradeRequest"
responses:
"200":
description: Aktualizované statistiky po koupi vylepšení.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyStats"
"400":
description: Neplatné vylepšení nebo maximální úroveň.
"402":
description: Nedostatek mincí.
+12
View File
@@ -0,0 +1,12 @@
post:
operationId: buyInsurance
summary: Koupí pojistku proti zloději (dočasně sníží ztrátu při okradení).
responses:
"200":
description: Aktualizované statistiky po koupi pojistky.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyStats"
"402":
description: Nedostatek mincí.
+10
View File
@@ -0,0 +1,10 @@
post:
operationId: reportMothHit
summary: Hráč omylem chytil černou můru přijde o část úlovků.
responses:
"200":
description: Aktualizované statistiky po chycení můry.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyStats"
+12
View File
@@ -0,0 +1,12 @@
post:
operationId: buyWaspSpray
summary: Koupí vosí sprej vyhubí všechny vosy.
responses:
"200":
description: Aktualizované statistiky po použití spreje.
content:
application/json:
schema:
$ref: "../../schemas/_index.yml#/ButterflyStats"
"402":
description: Nedostatek mincí.
+96
View File
@@ -945,8 +945,12 @@ ButterflyStats:
- birdsScared
- thievesDefeated
- caterpillarsDefeated
- mothsHit
- repellentUntil
- netTornUntil
- insuranceUntil
- upgrades
- daily
properties:
caught:
description: Celkový počet chycených motýlů
@@ -987,12 +991,104 @@ ButterflyStats:
caterpillarsDefeated:
description: Celkový počet poražených housenek
type: integer
mothsHit:
description: Kolikrát hráč omylem chytil černou můru
type: integer
repellentUntil:
description: Časové razítko (ms epoch), do kdy platí plašič ptáků; 0 = neaktivní
type: integer
netTornUntil:
description: Časové razítko (ms epoch), do kdy je síťka protržená; po uplynutí se sama zašije. 0 = celá
type: integer
insuranceUntil:
description: Časové razítko (ms epoch), do kdy platí pojistka proti zloději; 0 = neaktivní
type: integer
upgrades:
$ref: "#/ButterflyUpgrades"
daily:
$ref: "#/ButterflyDaily"
ButterflyUpgrades:
description: Úrovně trvalých vylepšení z obchodu
type: object
additionalProperties: false
required:
- net
- scarecrow
- reinforced
properties:
net:
description: Úroveň vylepšení velikosti síťky
type: integer
scarecrow:
description: Úroveň strašáka (zpomaluje přibývání ptáků)
type: integer
reinforced:
description: Úroveň zpevněné síťky (rychlejší samo-zašití)
type: integer
ButterflyDaily:
description: Denní úkol hráče
type: object
additionalProperties: false
required:
- taskId
- title
- progress
- target
- done
- reward
properties:
taskId:
description: Identifikátor druhu úkolu
type: string
title:
description: Popis úkolu pro uživatele
type: string
progress:
description: Aktuální postup
type: integer
target:
description: Cíl úkolu
type: integer
done:
description: Zda je úkol splněný (a odměna vyplacená)
type: boolean
reward:
description: Odměna v mincích za splnění
type: integer
ButterflyUpgradeRequest:
description: Požadavek na koupi trvalého vylepšení
type: object
additionalProperties: false
required:
- item
properties:
item:
description: Které vylepšení koupit
type: string
enum: [net, scarecrow, reinforced]
ButterflyAchievement:
description: Jeden achievement (odznak)
type: object
additionalProperties: false
required:
- id
- title
- description
- unlocked
properties:
id:
type: string
title:
type: string
description:
type: string
unlocked:
type: boolean
ButterflyAchievementList:
description: Seznam achievementů
type: array
items:
$ref: "#/ButterflyAchievement"
ButterflyCatchRequest:
description: Dávka nachytaných motýlů k zaznamenání
type: object