Jak fungují techniky NarutoLARPu

Techniky a jejich infrastruktura jsou veřejně viditelné v repozitáři gitlab.com/narutolarp/database-public. Níže vysvětlím jak tento repozitář funguje.

Jak techniky vidí hráči

Začneme od konce, a to jak a kde jsou techniky zobrazeny. Máme 3 způsoby zobrazení:

A máme 2 místa kde je možné techniky vidět online. (Ale samozřejmě je také možné techniky vidět na svém PC, viz další kapitola Jak s technikami pracovat)

První místo je testovací web narutolarp.gitlab.io (na ročníku 23 byl používaný jako produkční protože jsem nestíhal :D). Tam se automaticky náhrává každá změna která se v repozitáři provede, takže může obsahovat i rozpracované změny. Tento web je určen spíše pro vývoj/testování/feedback, běžného hráče toto místo zajímat nemusí.

Druhé místo je samotný web narutolarp.cz, kam putují jen vybrané verze technik (každá verze zde má své číslo, např 10.6 je verze na které se hrál ročník 2023). Současná oficiální verze technik je vždy k prokliknutí na stránce Informace narutolarp.cz/rules.php#rules_3.
Např pro verzi 10.6 tyto odkazy vypadají takto:

Jak s technikami pracovat

V první řadě je nutné mít účet na gitlab.com.

Nejjednoduší způsob jak udělat změnu je přes webové rozhraní gitlabu. To je vhodné na menší změny, opravy textů, drobné balancování (změny čísel), etc.
Udělal jsem pár screenshotů: Jak editovat přes webové rozhraní (krok za krokem).

Ale pro větší změny je lepší si repozitíř stáhnout na svůj PC, a pracovat tzv lokálně.

Co je potřeba k lokální práci s technikama

Definice technik (XML)

Začátkem všeho je definice technik. Tedy jak se techniky zapisují, a jak jsou uložené. Oprostíme se zcela od pomocných textů, nápověd a formátování, a zaměříme se pouze na to, co technika skutečně je: tedy kolik dává zranění, kolik stojí chakry, jak se sesílá, jak se jmenuje, apod.
Techniky jsou uložené ve složce /public/data a jsou zapsané v jazyku XML, rozdělené do několika XML souborů.

Soubor definice.xml

První je soubor definice.xml, který obsahuje definice důležitých pojmů. Zde je pro nás hlavní atribut id který budeme potřebovat při definici technik samotných.

Definice zásahu rukou

<zásah id="ruka">
    <jméno>Rukou</jméno>
    <popisek>Zásah bezezbraně. Předloktí musí být oděno
        měkčeným chráničem a zásah nesmí býtveden zatnutou
        pěstí.</popisek>
</zásah>
                
Definice skrytí

<klíčové-slovo id="skrytí">
    <jméno>Skrytí</jméno>
    <popisek>úroveň skrytí je znázorněna zdviženou rukou s příslušným počtem zvednutých
        prstů nebo nasazenou barevnou stuhou (1 = zelená, 2 = žlutá, 3 = červená).
        Technika a efekt skrytí končí když skrytá postava obdrží nebo udělí platný zásah,
        nebo se dotkne herního předmětu který již nemá u sebe.</popisek>
</klíčové-slovo>
                

Soubor specialni-schopnosti.xml

Druhý je soubor specialni-schopnosti.xml, který definuje všechny speciální schopnosti ve hře, a do kterých vesnic patří. Opět má každá speciální schopnost svoje id, na které se budeme později odkazovat (id="opila-pest")

Definice speciální schopnosti Opilá pěst

<quirk-mechanicky value="2" id="opila-pest" není-ve-hře="true">
    <name>Opilá pěst</name>
    <playstyle> několik technik, primárně boj beze zbraně </playstyle>
    <village ref="valley">
        <flavour>Toto je styl taijutsu, který je možný pouze tehdy, když je
            uživatel pod vlivem ...</flavour>
    </village>
</quirk-mechanicky>
                
Zobrazení speciální schopnosti Opilá pěst
Screnshot techniky Potácení

Soubory strom-*.xml

A nakonec je zde jeden soubor pro každý strom. V těchto souborech jsou definovány samotné techniky. Například soubor strom-Taijutsu.xml, který definuje strom Taijutsu, neboli Boj beze zbraně. Každý strom má taky své id, ale navíc ma definice všech technik, a to jak speciálních, tak veřejných.
Níže vidíme srovnání definice a zobrazení u jedné konkrétní techniky. Všimněme si následujících míst:

Definice techniky Potácení

<technika id="technika-potaceni">
    <jméno>Potácení</jméno>
    <úroveň>5</úroveň>
    <typ-efektu ref="posílení" />
    <cena ref="život">1</cena>
    <speciální-schopnost ref="opila-pest" />
    <flavour />
    <pasivní>
        <atribut ref="max-život">1</atribut>
    </pasivní>
    <obranná>
        <zásah ref="ruka" />
        <zásah ref="zbraň-nablízko" />
        <zásah ref="zbraň-nadálku" />
        <zásah ref="koule" />
        <heslo ref="úhyb" />
    </obranná>
</technika>
                
Zobrazení techniky Potácení
Screnshot techniky Potácení

XML Schema (XSD)

Každý XML soubor má své schéma, tedy soubor který určuje co v něm může být a co ne. Schémata jsou ve složce /public/data/schemas. Při změně schématu je typicky potřeba změnit i dotčené XML soubor/y, a změnit i zobrazovací logiku, aby byla schopná přijmat nové schéma (složka /skilltree).

Zobrazení technik (Elm)

To jak se techniky zobrazují je definováné ve složce /skilltree.

Plány do budoucna

Kompletně strukturuovat techniky (textové části přenést do struktury).

Provádět analýzu nad technikami.

Zlepšit tento článek.

Motivace pro zvolené technologie