Mapa závislostí

Stránka /zavislosti/ ukazuje jako graf, co je potřeba k vyřešení každé situace, co za ni tým dostane a co tím otevře dál. Odkaz na ni je v hlavičce hry a otevře mapu ve stejném tématu, scénáři a jazyce, v jakém právě hrajete. Stav stránky je v adrese (#scenario=fog&theme=caravan&lang=en&layers=reveal&focus=card:code), takže lze sdílet konkrétní pohled.

Mapu nikdo ručně nekreslí. Počítá se funkcí dependencyGraph() v src/dependencies.js přímo z mechanik (src/content.js, src/scenarios.js, výchozí nastavení v src/engine.js). Nová karta nebo scénář se v ní objeví samy. Test test/dependencies.test.js hlídá, že mapa obsahuje přesně karty balíčku scénáře.

Co přepínače mění

Jak graf číst

Sloupce jdou zleva doprava:

  1. Zdroje schopností:
    • role; každá má právě jednu schopnost a dává ji, jen když je postava připravená
    • pod nimi příležitosti, tedy karty s odměnou (předmět, dovednost, vybavení místa, týmové vybavení)
  2. Schopnosti (plavba, opravy, ošetření, pátrání, vyjednávání). Barva a písmeno A–E jsou stejné jako v neutrálním tématu, takže je rozlišíte i černobíle.
  3. Použití schopností: karty cesty, hrozby a volitelně akce.
  4. Výsledek: únik (goalTarget karet cesty) a volitelně oslabení postav.
Hrana Význam Místo v kódu
silná čára role → schopnost role schopnost má capabilitiesOf, engine.js
silná čára karta → schopnost odměna schopnost dává; dosah uvádí popisek i tabulka reward, engine.js (zóna asset)
tenká šipka schopnost → karta situace schopnost vyžaduje; všechny podmínky musí platit, postavy na stejném místě se sčítají requires, výběr týmu v engine.js
šipka karta cesty → únik vyřešená karta cesty se počítá do cíle goalTarget, engine.js
tečkovaná karta → karta vyřešení odhalí jinou kartu (resolved:beacon → Signály) applyRevealConditions, knowledge.js
tečkovaná schopnost → karta kartu odhalí postava s touto schopností do 1 spoje (near:discovery → Skrýš) knowledge.js
čárkovaná schopnost → akce plavba (operátor transportu), průzkum na 2 spoje, obnova postavy, oprava transportu engine.js
červená čárkovaná hrozba → oslabení po vypršení hrozba oslabí postavy na místě a ty přijdou o schopnost role úklid kola, engine.js

Pruh u pravého okraje karty má barvu schopnosti, kterou karta dává.

Karta má v popisku krok:

Šedé čárkované uzly jsou nedosažitelné: ve scénáři pro ně neexistuje zdroj schopnosti.

Dosah odměny rozhoduje, kde schopnost platí:

Mapa počítá dosažitelnost tak, jako by šla schopnost použít kdekoli. Omezený dosah proto uvádí rozbor pod grafem jako upozornění.

Zaměření: klepnutím nebo Enterem na uzel se žlutě zvýrazní vše, co uzel potřebuje (všechny možné zdroje), a zeleně vše, co otevírá. Esc výběr zruší. Klepnutím na řetězec v rozboru se zaměří jeho karta.

Rozbor scénáře

Pod grafem je:

Dosažitelnost se počítá jako pevný bod:

  1. Schopnosti rolí mají krok 0.
  2. Karta je řešitelná o krok později než její poslední podmínka.
  3. Odměna zpřístupní svou schopnost od kroku své karty.

Na rozdíl od scenarioWarnings v src/scenarios.js, které porovnávají jen role s podmínkami karet cesty, mapa sleduje i řetězce odměn.

Nesoulady se specifikací

Mapa ukazuje skutečně implementovaný stav. V docs/spec/ jsou záměry, které kód zatím nemá: