Files
roll20-character-sheets/Dragon_Riders/dragonriders.html
T
2024-06-03 13:15:14 -04:00

1217 lines
63 KiB
HTML

<div class="character-sheet">
<div class="row">
<div class="col-12 center">
<img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Dragon_Riders/Images/logo.png" class="logo" alt="">
</div>
</div>
<div class="row col-hr">
<div class="col-6">
<div>
<h2 class="title" data-i18n="dragon-rider">Smoczy jeździec</h2>
<div class="input-with-label">
<label data-i18n="name">Imię</label>
<input type="text" name="attr_character_name">
</div>
<div class="input-with-label">
<label data-i18n="nickname">Przydomek</label>
<input type="text" name="attr_nickname">
</div>
<div class="input-with-label">
<label data-i18n="archetype">Archetyp</label>
<select name="attr_achertype">
<option value="pick" data-i18n="pick" selected>Wybierz</option>
<option value="hero" data-i18n="hero">Bohaterka</option>
<option value="aristocrat" data-i18n="aristocrat">Arystokrata</option>
<option value="rebel" data-i18n="rebel">Buntowniczka</option>
<option value="dodger" data-i18n="dodger">Spryciarz</option>
<option value="hunter" data-i18n="hunter">Łowczyni</option>
<option value="sage" data-i18n="sage">Mędrzec</option>
<option value="fraud" data-i18n="fraud">Oszustka</option>
<option value="avenger" data-i18n="avenger">Mściciel</option>
<option value="alumnus-of-order" data-i18n="alumnus-of-order">Wychowanka Zakonu</option>
</select>
</div>
<div class="input-with-label">
<label data-i18n="age">Wiek / Staż</label>
<input type="text" name="attr_age">
</div>
<div class="input-with-label">
<label data-i18n="motivation">Motywacja</label>
<select name="attr_motivation">
<option value="pick-or-enter" data-i18n="pick-or-enter" selected>Wybierz lub wpisz</option>
<option value="faith-in-aslaug" data-i18n="faith-in-aslaug">Wiara w Aslauga</option>
<option value="hatred-of-chimeras" data-i18n="hatred-of-chimeras">Nienawiść do chimer</option>
<option value="desire-for-fame" data-i18n="desire-for-fame">Pragnienie sławy</option>
<option value="good-of-empire" data-i18n="good-of-empire">Dobro ludzi Imperium</option>
<option value="private-interests" data-i18n="private-interests">Prywatne interesy</option>
<option value="desire-for-adventure" data-i18n="desire-for-adventure">Pragnienie przygód</option>
<option value="gratitude" data-i18n="gratitude">Wdzięczność</option>
<option value="call-of-duty" data-i18n="call-of-duty">Poczucie obowiązku</option>
<option value="desire-for-revenge" data-i18n="desire-for-revenge">Żądza zemsty</option>
<option value="penance" data-i18n="penance">Pokuta</option>
<option value="feeling-guilty" data-i18n="feeling-guilty">Poczucie winy</option>
<option value="desire-for-power" data-i18n="desire-for-power">Pragnienie władzy</option>
</select>
<input type="text" name="attr_motivation_text">
</div>
</div>
<div class="margin-20"></div>
<div class="sygnet-background__wrapper">
<div class="sygnet-background" style="left: -220px; top: 20px;"></div>
<div class="absolute-box" style="position: absolute; right:0">
<div class="flex">
<div class="flex-1">
<label class="checkbox-label small-checkbox" style="margin:0;">
<input type="hidden" name="attr_dragon_presence" value="0">
<input type="checkbox" name="attr_dragon_presence" value="1">
</label>
</div>
<div class="flex-3 flex flex-center">
<span data-i18n="dragon-presence">Obecność smoka</span>
</div>
</div>
<div class="flex">
<div class="flex-1" style="text-align: right;">
<span data-i18n="connection-price">Cena więzi</span>
</div>
</div>
<div class="flex">
<div class="flex-1">
<select name="attr_connection_price_skill" style="width: 134px;padding: 0 2px;">
<option value="willpower" selected data-i18n="willpower">Siła Woli</option>
<option value="fight" data-i18n="fight">Walka</option>
<option value="resilence" data-i18n="resilence">Wytrzymałość</option>
<option value="cunning" data-i18n="cunning">Przebiegłość</option>
<option value="observation" data-i18n="observation">Spostrzegawczość</option>
<option value="dexterity" data-i18n="dexterity">Zręczność</option>
<option value="magicarkana" data-i18n="magicarkana">Arkana Magii</option>
<option value="perspicacity" data-i18n="perspicacity">Przenikliwość</option>
<option value="understanding" data-i18n="understanding">Rozumienie</option>
<option value="history" data-i18n="history">Historia</option>
<option value="inspiration" data-i18n="inspiration">Inspiracja</option>
<option value="persuasion" data-i18n="persuasion">Przekonywanie</option>
</select>
</div>
</div>
</div>
</div>
<div class="attr-row__wrapper" style="margin-left: 20px;">
<h3 class="subtitle" data-i18n="bravery">Waleczność</h3>
<div class="attr-row" style="margin-left: 30px;">
<div class="main-attr">
<input type="hidden" name="attr_bravery_calc" value="0">
<label class="checkbox-label">
<input type="radio" name="attr_connection_attr" value="bravery">
</label>
<input type="number" name="attr_bravery" value="0">
</div>
<div class="flex-column">
<div class="attr-label">
<input type="number" name="attr_willpower" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{willpower}}}' data-attribute="bravery" data-skill="willpower">
<span data-i18n="willpower">Siła Woli</span>
<span data-i18n="willpower-desc" class="label-hover">Odpowiada za kondycję i wytrzymałość umysłu. Siłę Woli testujemy, gdy postać chce oprzeć się działaniu magii lub uwodzicielskiej pieśni potwora.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_fight" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{fight}}}' data-attribute="bravery" data-skill="fight">
<span data-i18n="fight">Walka</span>
<span data-i18n="fight-desc" class="label-hover">Odpowiada za wytrenowanie w bezpośrednim starciu, zarówno za technikę używania broni, jak i wrodzony talent do zadawania skutecznych ciosów. Walkę testujemy, gdy postać atakuje w zwarciu.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_resilence" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{resilence}}}' data-attribute="bravery" data-skill="resilence">
<span data-i18n="resilence">Wytrzymałość</span>
<span data-i18n="resilence-desc" class="label-hover">Odpowiada za kondycję ciała. Wytrzymałość testujemy, gdy trzeba dać radę niezwykłemu zmęczeniu, podnieść wielki ciężar lub znieść działanie trującego jadu.</span>
</button>
</div>
</div>
</div>
</div>
<div class="attr-row__wrapper" style="margin-left: 90px;">
<h3 class="subtitle" data-i18n="flair">Spryt</h3>
<div class="attr-row">
<div class="main-attr">
<input type="hidden" name="attr_flair_calc" value="0">
<label class="checkbox-label">
<input type="radio" name="attr_connection_attr" value="flair">
</label>
<input type="number" name="attr_flair" value="0">
</div>
<div class="flex-column">
<div class="attr-label">
<input type="number" name="attr_cunning" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{cunning}}}' data-attribute="flair" data-skill="cunning">
<span data-i18n="cunning">Przebiegłość</span>
<span data-i18n="cunning-desc" class="label-hover">Odpowiada za kłamanie, manipulowanie i zwodzenie. Przebiegłość testujemy, gdy postać, stosując nieuczciwe wybiegi, chce kogoś nakłonić do działania lub myślenia w określony sposób.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_observation" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{observation}}}' data-attribute="flair" data-skill="observation">
<span data-i18n="observation">Spostrzegawczość</span>
<span data-i18n="observation-desc" class="label-hover">Odpowiada za obserwowanie, wypatrywanie rzeczy ukrytych lub zauważanie szczegółów. Spostrzegawczość testujemy, gdy postać chce coś znaleźć (na przykład obóz rozbójników w lesie) lub odkryć (na przykład ukrytą broń).</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_dexterity" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{dexterity}}}' data-attribute="flair" data-skill="dexterity">
<span data-i18n="dexterity">Zręczność</span>
<span data-i18n="dexterity-desc" class="label-hover">Odpowiada za kontrolę nad ciałem i zdolności manualne. Zręczność testujemy podczas walki na dystans i wyzwań fizycznych niezwiązanych z wytrzymałością</span>
</button>
</div>
</div>
</div>
</div>
<div class="attr-row__wrapper" style="margin-left: 120px;">
<h3 class="subtitle" data-i18n="wisdom">Mądrość</h3>
<div class="attr-row">
<div class="main-attr">
<input type="hidden" name="attr_wisdom_calc" value="0">
<label class="checkbox-label">
<input type="radio" name="attr_connection_attr" value="wisdom">
</label>
<input type="number" name="attr_wisdom" value="0">
</div>
<div class="flex-column">
<div class="attr-label">
<input type="number" name="attr_magicarkana" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{magicarkana}}}' data-attribute="wisdom" data-skill="magicarkana">
<span data-i18n="magicarkana">Arkana Magii</span>
<span data-i18n="magicarkana-desc" class="label-hover">Odpowiada za zrozumienie magii, jej zasad i sposobów obrony przed nią. Arkana Magii testujemy, gdy postać chce zrozumieć działanie artefaktu albo dowiedzieć się, jaką mocą dysponuje mag na podstawie jego zachowania lub śladów jego działalności.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_perspicacity" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{perspicacity}}}' data-attribute="wisdom" data-skill="perspicacity">
<span data-i18n="perspicacity">Przenikliwość</span>
<span data-i18n="perspicacity-desc" class="label-hover">Odpowiada za rozpoznawanie ukrytych znaczeń i motywacji. Przenikliwość testujemy, kiedy postać chce zrozumieć na podstawie obserwacji, co ktoś czuje lub planuje zrobić.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_understanding" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{understanding}}}' data-attribute="wisdom" data-skill="understanding">
<span data-i18n="understanding">Rozumienie</span>
<span data-i18n="understanding-desc" class="label-hover">Odpowiada za zrozumienie zaobserwowanych zjawisk i sytuacji. Rozumienie testujemy, gdy postać chce, powołując się na swoją wiedzę, wysnuwać wnioski dotyczące zaistniałej sytuacji - na przykład zrozumieć strategię dowódcy ze sposobu, w jaki ustawił swoje oddziały.</span>
</button>
</div>
</div>
</div>
</div>
<div class="attr-row__wrapper" style="margin-left: 70px;">
<h3 class="subtitle" data-i18n="sophistication">Obycie</h3>
<div class="attr-row">
<div class="main-attr">
<input type="hidden" name="attr_sophistication_calc" value="0">
<label class="checkbox-label">
<input type="radio" name="attr_connection_attr" value="sophistication">
</label>
<input type="number" name="attr_sophistication" value="0">
</div>
<div class="flex-column">
<div class="attr-label">
<input type="number" name="attr_history" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{history}}}' data-attribute="sophistication" data-skill="history">
<span data-i18n="history">Historia</span>
<span data-i18n="history-desc" class="label-hover">Odpowiada za znajomość Imperium, historii i kultury jego prowincji oraz ludów, zamieszkujących owe terytoria. Historię testujemy, gdy postać chce sprawdzić, ile wie na określony temat z doświadczeń, opowieści lub uczonych ksiąg.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_inspiration" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{inspiration}}}' data-attribute="sophistication" data-skill="inspiration">
<span data-i18n="inspiration">Inspiracja</span>
<span data-i18n="inspiration-desc" class="label-hover">Odpowiada za wzbudzanie uczuć w słuchaczach lub obserwatorach. Inspirację testujemy, gdy postać chce przekonać kogoś do działania, wywołując silne emocje - najczęściej przemową lub przykładem.</span>
</button>
</div>
<div class="attr-label">
<input type="number" name="attr_persuasion" value="0">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{persuasion}}}' data-attribute="sophistication" data-skill="persuasion">
<span data-i18n="persuasion">Przekonywanie</span>
<span data-i18n="persuasion-desc" class="label-hover">Odpowiada za wywieranie wpływu na innych za pomocą logiki. Przekonywanie testujemy, gdy postać chce kogoś nakłonić do działania lub myślenia w określony sposób, korzystając z wiedzy i argumentów.</span>
</button>
</div>
</div>
</div>
</div>
<div class="margin-20"></div>
<h3 class="subtitle" data-i18n="talents">Talenty</h3>
<div class="fieldset-labels">
<span class="flex-1 mini-title" data-i18n="talent-name">Nazwa talentu</span>
<span class="flex-4 mini-title" data-i18n="description">Opis</span>
</div>
<fieldset class="repeating_talents">
<input class="flex-1" type="text" name="attr_talent_name">
<textarea class="flex-4" name="attr_talent_desc" rows="2"></textarea>
</fieldset>
</div>
<div class="col-6 sygnet-background__wrapper">
<div class="sygnet-background" style="right: -130px;top:50px"></div>
<div class="row">
<div class="col-8">
<h2 class="title" data-i18n="dragon">Smok</h2>
<div class="input-with-label">
<label data-i18n="name">Imię</label>
<input type="text" name="attr_dragon_name">
</div>
<div class="input-with-label">
<label data-i18n="character">Charakter</label>
<input type="text" name="attr_dragon_character">
</div>
<div class="input-with-label">
<label data-i18n="archetype">Archetyp</label>
<select name="attr_dragon_archetype">
<option value="pick" data-i18n="pick" selected>Wybierz</option>
<option value="dream-dragon" data-i18n="dream-dragon">Twój Wymarzony Smok</option>
<option value="majestic-giant" data-i18n="majestic-giant">Majestatyczny Olbrzym</option>
<option value="terror-from-space" data-i18n="terror-from-space">Terror z Przestworzy</option>
<option value="gentle-beauty" data-i18n="gentle-beauty">Łagodna Piękność</option>
<option value="insidious-predator" data-i18n="insidious-predator">Podstępny Drapieżca</option>
<option value="dark-secret" data-i18n="dark-secret">Mroczna Tajemnica</option>
<option value="winged-trouble" data-i18n="winged-trouble">Skrzydlate Tarapaty</option>
<option value="repository-of-knowledge" data-i18n="repository-of-knowledge">Skarbnica Wiedzy</option>
<option value="untamed-beast" data-i18n="untamed-beast">Nieokiełznana Bestia</option>
</select>
</div>
<div class="input-with-label">
<label data-i18n="relation">Relacja</label>
<select name="attr_dragon_relation">
<option value="pick" data-i18n="pick" selected>Wybierz</option>
<option value="guardian" data-i18n="guardian">Opiekun</option>
<option value="rival" data-i18n="rival">Rywalka</option>
<option value="friend" data-i18n="friend">Przyjaciel</option>
<option value="siblings" data-i18n="siblings">Rodzeństwo</option>
<option value="subordinate" data-i18n="subordinate">Podwładny</option>
<option value="mentor" data-i18n="mentor">Mentorka</option>
<option value="beloved" data-i18n="beloved">Ukochana</option>
<option value="despot" data-i18n="despot">Despota</option>
<option value="problem" data-i18n="problem">Problem</option>
</select>
</div>
<div class="input-with-label">
<label data-i18n="size">Wielkość</label>
<input type="text" name="attr_dragon_size">
</div>
</div>
<div class="col-4">
<h3 class="subtitle" data-i18n="level-of-connection">Poziom Więzi</h3>
<div class="attr-row" style="justify-content: flex-start;">
<div class="main-attr">
<input type="number" name="attr_level_of_connection" value="0">
</div>
<div class="attr-buttons">
<button type="action" class="button-up" name="act_level_of_connection__up" class="not-roll"></button>
<button type="action" class="button-down" name="act_level_of_connection__down" class="not-roll"></button>
</div>
</div>
</div>
</div>
<div class="margin-20"></div>
<h3 class="subtitle" data-i18n="connection-cost">Cena Więzi</h3>
<textarea name="attr_connection_cost" rows="3"></textarea>
<h3 class="subtitle" data-i18n="aslaug-words">Słowa Aslauga</h3>
<textarea name="attr_aslaug_words" rows="3"></textarea>
<div class="margin-20"></div>
<div class="row">
<div class="col-4">
<h3 class="subtitle" data-i18n="momentum-points">Punkty rozmachu</h3>
<div class="attr-row" style="justify-content: flex-start;">
<div class="main-attr">
<input type="number" name="attr_momentum_points" value="0">
</div>
<div class="attr-buttons">
<button type="action" class="button-up" name="act_momentum_points__up" class="not-roll"></button>
<button type="action" class="button-down" name="act_momentum_points__down" class="not-roll"></button>
</div>
</div>
</div>
<div class="col-8">
<div class="flex">
<div class="flex-1">
<span data-i18n="use-momentum-points-to-throw">Użyj rozmachu, by połączyć dowolną cechę I umiejętność</span>
</div>
</div>
<div class="flex">
<div class="flex-1 flex flex-center">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{momentum-throw}}}' data-rolltype="throw" data-attribute="throw" data-skill="momentum" data-i18n="throw">Rzuć</button>
</div>
<div class="flex-2">
<span data-i18n="attribute">Cecha</span>
<select name="attr_momentum_attribute" style="width: 108px;">
<option value="bravery" selected data-i18n="bravery">Waleczność</option>
<option value="flair" data-i18n="flair">Spryt</option>
<option value="wisdom" data-i18n="wisdom">Mądrośc</option>
<option value="sophistication" data-i18n="sophistication">Obycie</option>
</select>
</div>
<div class="flex-2">
<span data-i18n="skill">Umiejętność</span>
<select name="attr_momentum_skill" style="width: 134px;padding: 0 2px;">
<option value="willpower" selected data-i18n="willpower">Siła Woli</option>
<option value="fight" data-i18n="fight">Walka</option>
<option value="resilence" data-i18n="resilence">Wytrzymałość</option>
<option value="cunning" data-i18n="cunning">Przebiegłość</option>
<option value="observation" data-i18n="observation">Spostrzegawczość</option>
<option value="dexterity" data-i18n="dexterity">Zręczność</option>
<option value="magicarkana" data-i18n="magicarkana">Arkana Magii</option>
<option value="perspicacity" data-i18n="perspicacity">Przenikliwość</option>
<option value="understanding" data-i18n="understanding">Rozumienie</option>
<option value="history" data-i18n="history">Historia</option>
<option value="inspiration" data-i18n="inspiration">Inspiracja</option>
<option value="persuasion" data-i18n="persuasion">Przekonywanie</option>
</select>
</div>
</div>
<div class="flex">
<div class="flex-1">
<label class="checkbox-label small-checkbox" style="margin:0">
<input type="hidden" name="attr_with_momentum_points" value="0">
<input type="checkbox" name="attr_with_momentum_points" value="1">
</label>
</div>
<div class="flex flex-center" style="flex:6">
<span data-i18n="use-momentum-points-to-add-d6" style="font-size: 14px;">Użyj rozmachu aby dodać 6 kostek do rzutu</span>
</div>
</div>
</div>
</div>
<div class="margin-20"></div>
<h3 class="subtitle" data-i18n="dragon-powers">Moce smoka</h3>
<div class="fieldset-labels">
<span class="flex-3 mini-title" data-i18n="dragon-power-name">Nazwa</span>
<span class="flex-1 mini-title" data-i18n="dragon-power-lvl">Poziom</span>
<span class="flex-4 mini-title" data-i18n="description">Opis</span>
</div>
<fieldset class="repeating_dragonpowers">
<input class="flex-3" type="text" name="attr_dragon_power_name">
<input class="flex-1" type="number" name="attr_dragon_power_lvl" value="0">
<textarea class="flex-4" name="attr_dragon_power_desc" rows="2"></textarea>
</fieldset>
</div>
</div>
<div class="margin-20"></div>
<div class="row">
<div class="col-4">
<h3 class="subtitle" data-i18n="zest">Animusz</h3>
<div class="inputs-box">
<input type="number" name="attr_zest_lvl" value="0">
<input type="text" name="attr_zest_desc">
</div>
<div class="margin-20"></div>
<h3 class="subtitle" data-i18n="magic-item">Magiczny przedmiot</h3>
<div class="flex throws-table">
<div class="flex-1">
<label class="checkbox-label small-checkbox">
<input type="hidden" name="attr_magic_item_toggle" value="0">
<input type="checkbox" name="attr_magic_item_toggle" value="1">
</label>
</div>
<div class="flex" style="flex: 6;flex-direction: column;">
<div class="flex">
<input type="text" name="attr_magic_item_desc" style="width: 100%;" placeholder="Nazwa przedmiotu..">
</div>
<div class="flex">
<div class="flex-2">
<select name="attr_magic_item_skill" style="width: 134px;padding: 0 2px;margin: 0;">
<option value="willpower" selected data-i18n="willpower">Siła Woli</option>
<option value="fight" data-i18n="fight">Walka</option>
<option value="resilence" data-i18n="resilence">Wytrzymałość</option>
<option value="cunning" data-i18n="cunning">Przebiegłość</option>
<option value="observation" data-i18n="observation">Spostrzegawczość</option>
<option value="dexterity" data-i18n="dexterity">Zręczność</option>
<option value="magicarkana" data-i18n="magicarkana">Arkana Magii</option>
<option value="perspicacity" data-i18n="perspicacity">Przenikliwość</option>
<option value="understanding" data-i18n="understanding">Rozumienie</option>
<option value="history" data-i18n="history">Historia</option>
<option value="inspiration" data-i18n="inspiration">Inspiracja</option>
<option value="persuasion" data-i18n="persuasion">Przekonywanie</option>
</select>
</div>
<div class="flex-2 flex flex-center" style="justify-content: flex-end;min-width: 136px;">
<span data-i18n="type-of-dice">Rodzaj kości:</span>
<select name="attr_magic_item_dice" style="width: 56px;padding: 0 2px;margin: 0 2px;">
<option value="d10" data-i18n="d10" selected>K10</option>
<option value="d12" data-i18n="d12">K12</option>
</select>
</div>
</div>
</div>
</div>
<div class="margin-20"></div>
<div class="grid throws-table" style="grid-template-columns: 2fr 1fr 1fr 1fr;">
<div class="grid-item">
<h3 class="subtitle" data-i18n="throws">Rzuty</h3>
</div>
<div class="grid-item" style="grid-column-start: 2;grid-column-end: 5;">
<h3 class="subtitle" data-i18n="bonus-dice">Premiowe kości</h3>
</div>
<div class="grid-item" style="grid-column-start: 2;font-weight: bold;">
<span data-i18n="d8">K8</span>
</div>
<div class="grid-item" style="font-weight: bold;">
<span data-i18n="d10">K10</span>
</div>
<div class="grid-item" style="font-weight: bold;">
<span data-i18n="d12">K12</span>
</div>
<div class="grid-item">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{combat}}}' data-rolltype="throw" data-attribute="bravery" data-skill="fight" data-i18n="combat">Zwarcie</button>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_fight_d8_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_fight_d8_toggle" value="1">
<input type="number" name="attr_throw_fight_d8" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_fight_d10_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_fight_d10_toggle" value="1">
<input type="number" name="attr_throw_fight_d10" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_fight_d12_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_fight_d12_toggle" value="1">
<input type="number" name="attr_throw_fight_d12" value="0">
</div>
</div>
<div class="grid-item">
<button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{range}}}' data-rolltype="throw" data-attribute="flair" data-skill="dexterity" data-i18n="range">Dystans</button>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dexterity_d8_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dexterity_d8_toggle" value="1">
<input type="number" name="attr_throw_dexterity_d8" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dexterity_d10_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dexterity_d10_toggle" value="1">
<input type="number" name="attr_throw_dexterity_d10" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dexterity_d12_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dexterity_d12_toggle" value="1">
<input type="number" name="attr_throw_dexterity_d12" value="0">
</div>
</div>
<div class="grid-item"><button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{dodge}}}' data-rolltype="throw" data-attribute="throw" data-skill="dodge" data-i18n="dodge">Unik</button></div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dodge_d8_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dodge_d8_toggle" value="1">
<input type="number" name="attr_throw_dodge_d8" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dodge_d10_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dodge_d10_toggle" value="1">
<input type="number" name="attr_throw_dodge_d10" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_dodge_d12_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_dodge_d12_toggle" value="1">
<input type="number" name="attr_throw_dodge_d12" value="0">
</div>
</div>
<div class="grid-item"><button class="label-roll" type="action" name="act_roll" value='&{template:dragonriders} {{roll-name=^{bond}}}' data-rolltype="throw" data-attribute="throw" data-skill="bond" data-i18n="bond">Więź</button></div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_bond_d8_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_bond_d8_toggle" value="1">
<input type="number" name="attr_throw_bond_d8" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_bond_d10_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_bond_d10_toggle" value="1">
<input type="number" name="attr_throw_bond_d10" value="0">
</div>
</div>
<div class="grid-item">
<div class="attr-label">
<input type="hidden" name="attr_throw_bond_d12_toggle" value="0">
<input type="checkbox" class="throws-table__checkbox" name="attr_throw_bond_d12_toggle" value="1">
<input type="number" name="attr_throw_bond_d12" value="0">
</div>
</div>
<div class="grid-item" style="grid-column-start: 1;grid-column-end: 5;">
<label class="checkbox-label small-checkbox" style="margin:0">
<input type="hidden" name="attr_with_dragon_power" value="0">
<input type="checkbox" name="attr_with_dragon_power" value="1">
</label>
<span data-i18n="throw-with-dragon-power">Rzucam z mocą smoka</span>
</div>
</div>
<div class="margin-10"></div>
<h3 class="subtitle" data-i18n="experience-points">Punkty Doświadczenia</h3>
<input type="text" name="attr_experience" class="input-with-border" style="width: 100%;">
</div>
<div class="col-4">
<div class="grid states-table" style="grid-template-columns: 1fr 1fr 1fr;">
<div class="grid-item states-table__th">
<span data-i18n="rider">Jeździec</span>
</div>
<div class="grid-item states-table__th states-table__main-title">
<span data-i18n="states">Stany</span>
</div>
<div class="grid-item states-table__th">
<span data-i18n="dragon">Smok</span>
</div>
<div class="grid-item">
<label class="checkbox-label checkbox-label--dashed">
<input type="checkbox" name="attr_scratched" value="1">
<span></span>
</label>
</div>
<div class="grid-item">
<span data-i18n="scratched">Draśnięty</span>
</div>
<div class="grid-item">
<div class="double-checkboxes double-checkboxes--dashed">
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_scratched_1" value="1">
<span></span>
</label>
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_scratched_2" value="1">
<span></span>
</label>
</div>
</div>
<div class="grid-item">
<label class="checkbox-label">
<input type="checkbox" name="attr_battered" value="1">
<span></span>
</label>
</div>
<div class="grid-item">
<span data-i18n="battered">Poturbowany</span>
</div>
<div class="grid-item">
<div class="double-checkboxes">
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_battered_1" value="1">
<span></span>
</label>
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_battered_2" value="1">
<span></span>
</label>
</div>
</div>
<div class="grid-item">
<label class="checkbox-label">
<input type="checkbox" name="attr_injured" value="1">
<span></span>
</label>
</div>
<div class="grid-item">
<span data-i18n="injured">Ranny</span>
</div>
<div class="grid-item">
<div class="double-checkboxes">
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_injured_1" value="1">
<span></span>
</label>
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_injured_2" value="1">
<span></span>
</label>
</div>
</div>
<div class="grid-item">
<label class="checkbox-label">
<input type="checkbox" name="attr_massacred" value="1">
<span></span>
</label>
</div>
<div class="grid-item" >
<span data-i18n="massacred">Zmasakrowany</span>
</div>
<div class="grid-item">
<div class="double-checkboxes">
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_massacred_1" value="1">
<span></span>
</label>
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_massacred_2" value="1">
<span></span>
</label>
</div>
</div>
<div class="grid-item">
<label class="checkbox-label">
<input type="checkbox" name="attr_dead" value="1">
<span>M</span>
</label>
</div>
<div class="grid-item" >
<span data-i18n="dead">Martwy</span>
</div>
<div class="grid-item">
<label class="checkbox-label">
<input type="checkbox" name="attr_dragon_dead" value="1">
<span>M</span>
</label>
</div>
</div>
</div>
<div class="col-4">
<h3 class="subtitle" data-i18n="dragon-look">Opis wyglądu</h3>
<textarea name="attr_dragon_look" rows="10"></textarea>
</div>
</div>
<div class="margin-20"></div>
<div class="row">
<div class="col-6">
<h3 class="subtitle center">Twoja prowincja</h3>
<textarea name="attr_province" rows="10"></textarea>
</div>
<div class="col-6">
<h3 class="subtitle center">Twoje skrzydło</h3>
<textarea name="attr_wing" rows="10"></textarea>
</div>
</div>
<div class="margin-20"></div>
<div class="row">
<div class="col-12">
<h3 class="subtitle center" data-i18n="chessboard-mode">Tryb szachownicy</h3>
</div>
</div>
<div class="row">
<div class="col-9">
<div class="input-with-label">
<label data-i18n="personal-goal">Cel osobisty</label>
<input type="text" name="attr_personal_goal">
</div>
</div>
<div class="col-3">
<div class="attr-row" style="justify-content: flex-start;">
<div class="attr-label">
<label data-i18n="influence-points">Punkty Wpływu</label>
<input type="number" name="attr_influence_points" value="0">
</div>
</div>
</div>
</div>
</div>
<!-- Roll Templates -->
<rolltemplate class="sheet-rolltemplate-dragonriders">
<div class="template-wrap">
<div class="template-header">
<span>
{{#character_name}}
{{#character_id}}[{{character_name}}](https://journal.roll20.net/character/{{character_id}}){{/character_id}}
{{^character_id}}{{character_name}}{{/character_id}}
{{/character_name}}
</span>
</div>
<div class="template-roll-results-title">{{roll-name}}</div>
{{#rollBetween() computed::force 1 1}}
<div class="template-roll-success-small-text" data-i18n="force-roll">Forsowanie</div>
{{/rollBetween() computed::force 1 1}}
<div class="template-roll-success-small-text" data-i18n="amount-of-success">Liczba sukcesów:</div>
<div class="template-roll-results">
<div class="template-circle"><span class="template-base-roll">{{baseRoll}}</span> <span class="template-roll-success">{{computed::success}}</span></div>
</div>
<div class="template-dragon-presence">
<div>
{{#rollBetween() computed::connectionWithDragon 1 1}}
<div class="template-roll-results-small-text" data-i18n="connection-with-dragon">Więź ze smokiem</div>
{{/rollBetween() computed::connectionWithDragon 1 1}}
</div>
<div>
{{#rollBetween() dragonPresence 1 1}}
<div class="template-roll-results-small-text" data-i18n="dragon-presence">Obecność smoka</div>
{{/rollBetween() dragonPresence 1 1}}
</div>
</div>
<div class="template-dragon-powers">
<div>
{{#rollBetween() withDragonPower 1 1}}
<div class="template-roll-results-small-text" data-i18n="with-dragon-power">Z mocą smoka</div>
{{/rollBetween() withDragonPower 1 1}}
</div>
<div>
{{#rollBetween() magicItemToggle 1 1}}
<div class="template-roll-results-small-text" style="text-align: right;" data-i18n="with-magic-item">Z magicznym przedmiotem</div>
{{/rollBetween() magicItemToggle 1 1}}
</div>
</div>
{{#rollBetween() withMomentumPoints 1 1}}
<div class="template-dragon-powers">
<div></div>
<div>
<div class="template-roll-results-small-text" style="text-align: right;" data-i18n="with-momentum">Z rozmachem</div>
</div>
</div>
{{/rollBetween() withMomentumPoints 1 1}}
<div class="template-dragon-presence">
<div>
{{#rollBetween() computed::force 1 1}}
Utrata Animuszu: <span>{{computed::zestDamage}}</span>
{{/rollBetween() computed::force 1 1}}
</div>
{{#rollGreater() computed::dicesForReroll 0}}
{{#rollGreater() zest_lvl 0}}
<div class="template-button">
{{#rollBetween() computed::force 0 0}}
[<span data-i18n="force"></span>](~{{character_name}}|roll||force|{{attribute}}|{{skill}}|{{computed::d6}}|{{computed::d8}}|{{computed::d10}}|{{computed::d12}}|{{computed::id6}}|{{computed::success}}|{{computed::zestDamage}})
{{/rollBetween() computed::force 0 0}}
{{#rollBetween() computed::force 1 1}}
[<span data-i18n="force-with-talent"></span>](~{{character_name}}|roll||force|{{attribute}}|{{skill}}|{{computed::d6}}|{{computed::d8}}|{{computed::d10}}|{{computed::d12}}|{{computed::id6}}|{{computed::success}}|{{computed::zestDamage}})
{{/rollBetween() computed::force 1 1}}
</div>
{{/rollGreater() zest_lvl 0}}
{{/rollGreater() computed::dicesForReroll 0}}
</div>
</div>
</rolltemplate>
<script type="text/worker">
on("sheet:opened", function(eventInfo){
setAttrs({
d6modifier: getTranslationByKey("d6modifier"),
d8powermodifier: getTranslationByKey("d8powermodifier"),
d10powermodifier: getTranslationByKey("d10powermodifier"),
d12powermodifier: getTranslationByKey("d12powermodifier"),
d10itemmodifier: getTranslationByKey("d10itemmodifier"),
d12itemmodifier: getTranslationByKey("d12itemmodifier"),
});
});
const buttonsUp = ["level_of_connection__up","momentum_points__up"];
const buttonsDown = ["level_of_connection__down","momentum_points__down"];
buttonsUp.forEach(button => {
on(`clicked:${button}`, function() {
var attr = button.split('__')[0];
getAttrs([button, attr], function(values) {
var setAttr = {};
setAttr[attr] = Number(values[attr]) + 1
setAttrs(setAttr);
});
});
});
buttonsDown.forEach(button => {
on(`clicked:${button}`, function() {
var attr = button.split('__')[0];
getAttrs([button, attr], function(values) {
var setAttr = {};
setAttr[attr] = Number(values[attr]) - 1
setAttrs(setAttr);
});
});
});
on('clicked:roll', async (event) => {
var attribute = event.htmlAttributes['data-attribute'];
var skill = event.htmlAttributes['data-skill'];
var rolltype = event.htmlAttributes['data-rolltype'];
var connectionWithDragon = 0;
var withDragonPower = 0;
var withMomentumPoints = 0;
var magicItemToggle = 0;
var riderStatesPointsUsed = 0;
var rollBase = event.htmlAttributes.value;
var rerollSuccess = 0;
var zestDamage = 0;
if (skill == "momentum") {
var momentumAttribute = await asw.getAttrs(['momentum_attribute']);
attribute = Object.values(momentumAttribute)[0];
var momentumSkill = await asw.getAttrs(['momentum_skill']);
skill = Object.values(momentumSkill)[0];
}
var dragonPresence = await asw.getAttrs(['dragon_presence']);
dragonPresence = Number(Object.values(dragonPresence)[0]);
var connectionPriceSkill = await asw.getAttrs(['connection_price_skill']);
connectionPriceSkill = Object.values(connectionPriceSkill)[0];
if (skill == connectionPriceSkill) {
connectionPriceSkill = 1;
} else {
connectionPriceSkill = 0;
}
if (event.originalRollId != null) {
var rerollInfo = event.originalRollId.split('|');
var action = rerollInfo[0];
attribute = action;
skill = rerollInfo[2];
var rerollD6 = Number(rerollInfo[3]);
if (rerollD6 > 0) {
rerollD6 = rerollD6 + 'd6 + ';
} else {
rerollD6 = ''
}
var rerollD8 = Number(rerollInfo[4]);
if (rerollD8 > 0) {
rerollD8 = rerollD8 + 'd8 + ';
} else {
rerollD8 = ''
}
var rerollD10 = Number(rerollInfo[5]);
if (rerollD10 > 0) {
rerollD10 = rerollD10 + 'd10 + ';
} else {
rerollD10 = ''
}
var rerollD12 = Number(rerollInfo[6]);
if (rerollD12 > 0) {
rerollD12 = rerollD12 + 'd12 + ';
} else {
rerollD12 = ''
}
var rerollID6 = Number(rerollInfo[7]);
if (rerollID6 > 0) {
rerollID6 = rerollID6 + 'd6 + ';
} else {
rerollID6 = ''
}
console.log(rerollInfo)
rerollSuccess = Number(rerollInfo[8]);
zestDamage = Number(rerollInfo[9]);
rollBase = "&{template:dragonriders} {{roll-name=^{"+skill+"}}} {{baseRoll=[[" + rerollD6 + rerollD8 + rerollD10 + rerollD12 + rerollID6 + "]]}}";
console.log(rollBase)
}
if (attribute != 'baseroll' && attribute != 'force') {
var connectionAttr = await asw.getAttrs(['connection_attr']);
connectionAttr = Object.values(connectionAttr)[0];
rollBase += " {{baseRoll=[[ ";
if (attribute == 'throw') {
if (skill == 'bond') {
var attributeNum = await asw.getAttrs([connectionAttr]);
attributeNum = Number(Object.values(attributeNum)[0]);
rollBase += attributeNum+"d6 + @{level_of_connection}d6 + @{dragon_presence}d8";
} else if (skill == 'dodge') {
rollBase += "@{level_of_connection}d6 + @{dragon_presence}d8"
}
} else {
var attributeNum = await asw.getAttrs([attribute]);
attributeNum = Number(Object.values(attributeNum)[0]);
var skillNum = await asw.getAttrs([skill]);
skillNum = Number(Object.values(skillNum)[0]);
var d6 = attributeNum + skillNum;
var d8 = 0;
d8 += dragonPresence;
if (connectionPriceSkill == 1) {
var levelOfConnection = await asw.getAttrs(['level_of_connection']);
levelOfConnection = Number(Object.values(levelOfConnection)[0]);
d6 -= levelOfConnection;
if (dragonPresence == 1) {
d8 += levelOfConnection;
}
}
rollBase += d6+"d6";
if (d8 != 0) {
rollBase += " + "+d8+"d8";
}
}
if (rolltype == 'throw') {
var throw_d8_toggle = await asw.getAttrs(["throw_"+skill+"_d8_toggle"]);
throw_d8_toggle = Number(Object.values(throw_d8_toggle)[0]);
var throw_d10_toggle = await asw.getAttrs(["throw_"+skill+"_d10_toggle"]);
throw_d10_toggle = Number(Object.values(throw_d10_toggle)[0]);
var throw_d12_toggle = await asw.getAttrs(["throw_"+skill+"_d12_toggle"]);
throw_d12_toggle = Number(Object.values(throw_d12_toggle)[0]);
if (throw_d8_toggle == 1) {
rollBase += " + @{throw_"+skill+"_d8}d8";
}
if (throw_d10_toggle == 1) {
rollBase += " + @{throw_"+skill+"_d10}d10";
}
if (throw_d12_toggle == 1) {
rollBase += " + @{throw_"+skill+"_d12}d12";
}
}
rollBase += " + ?{@{d6modifier}|0}d6";
withDragonPower = await asw.getAttrs(["with_dragon_power"]);
withDragonPower = Number(Object.values(withDragonPower)[0]);
if (withDragonPower == 1) {
rollBase += " + ?{@{d8powermodifier}|0}d8 + ?{@{d10powermodifier}|0}d10 + ?{@{d12powermodifier}|0}d12";
}
magicItemToggle = await asw.getAttrs(["magic_item_toggle"]);
magicItemToggle = Number(Object.values(magicItemToggle)[0]);
if (magicItemToggle == 1) {
var magicItemSkill= await asw.getAttrs(["magic_item_skill"]);
magicItemSkill = Object.values(magicItemSkill)[0];
if (skill == magicItemSkill) {
var magicItemDice= await asw.getAttrs(["magic_item_dice"]);
magicItemDice = Object.values(magicItemDice)[0];
rollBase += " + ?{@{"+magicItemDice+"itemmodifier}|0}" + magicItemDice
}
}
withMomentumPoints = await asw.getAttrs(["with_momentum_points"]);
withMomentumPoints = Number(Object.values(withMomentumPoints)[0]);
if (withMomentumPoints == 1) {
rollBase += " + 6d6";
}
rollBase += " ]]}}";
}
rollBase += " {{character_name=@{character_name}}} {{character_id=@{character_id}}} {{success=[[0]]}} {{dragonPresence=[["+dragonPresence+"]]}} {{withDragonPower=[["+withDragonPower+"]]}} {{magicItemToggle=[["+magicItemToggle+"]]}} {{withMomentumPoints=[["+withMomentumPoints+"]]}} {{connectionWithDragon=[["+connectionWithDragon+"]]}} {{zest_lvl=[[@{zest_lvl}]]}} {{dicesForReroll=[[1d6]]}} {{attribute="+attribute+"}} {{skill="+skill+"}} {{zestDamage=[[0]]}} {{d6=[[0]]}} {{d8=[[0]]}} {{d10=[[0]]}} {{d12=[[0]]}} {{id6=[[0]]}} {{force=[[1d6]]}}";
console.log(rollBase)
let rollResult = await startRoll(rollBase);
console.log(rollResult)
let computedValues = await calcComputedValues(rollResult, attribute, rerollSuccess, zestDamage, withMomentumPoints);
if (attribute != 'baseroll') {
computedValues.connectionWithDragon = connectionWithDragon;
}
console.log(computedValues)
finishRoll(
rollResult.rollId,
computedValues
);
});
const calcComputedValues = async (rollResult, attribute, rerollSuccess, zestDamage, withMomentumPoints) => {
var results = rollResult.results;
var success = rerollSuccess;
var dicesForReroll = 0;
var dicesForRerollTable = {
d6: 0,
d8: 0,
d10: 0,
d12: 0,
id6: 0
}
var rolls = results.baseRoll.rolls;
for (var i = 0; i < rolls.length; i++) {
var rollsResults = rolls[i].results;
var sides = 'd' + rolls[i].sides;
var ignoreOnes = false;
if (withMomentumPoints == 1 && (i == rolls.length - 1)) {
ignoreOnes = true;
}
for (var k = 0; k < rollsResults.length; k++) {
var tempSuccess = await checkSuccessDice(rollsResults[k], ignoreOnes);
console.log(ignoreOnes)
if (tempSuccess == -1) {
zestDamage += 1;
} else if (tempSuccess != 0) {
success += tempSuccess;
} else {
if (ignoreOnes) {
dicesForRerollTable.id6 += 1;
} else {
dicesForRerollTable[sides] += 1;
}
dicesForReroll += 1;
}
}
}
console.log(dicesForRerollTable)
let computedValues = {
success: success,
zestDamage: zestDamage,
dicesForReroll: dicesForReroll,
d6: dicesForRerollTable.d6,
d8: dicesForRerollTable.d8,
d10: dicesForRerollTable.d10,
d12: dicesForRerollTable.d12,
id6: dicesForRerollTable.id6,
force: attribute == 'force' ? 1 : 0
};
return computedValues;
};
// Update attr for expertise
const checkSuccessDice = async (dice, ignoreOnes) => {
var success = 0;
if (dice == 6 || dice == 7) {
success++
} else if (dice == 8 || dice == 9) {
success += 2
} else if (dice >= 10) {
success += 3
} else if (dice == 1 && !ignoreOnes) {
success = -1;
}
return success;
}
// Get attr helper
const asw = (() => {
const setActiveCharacterId = function(charId){
let oldAcid=getActiveCharacterId();
let ev = new CustomEvent("message");
ev.data={"id":"0", "type":"setActiveCharacter", "data":charId};
self.dispatchEvent(ev);
return oldAcid;
};
const promisifyWorker = (worker, parameters) => {
let acid=getActiveCharacterId();
let prevAcid=null;
return new Promise((res,rej)=>{
prevAcid=setActiveCharacterId(acid);
try {if (worker===0) getAttrs(parameters[0]||[],(v)=>res(v));
else if (worker===1) setAttrs(parameters[0]||{}, parameters[1]||{},(v)=>res(v));
else if (worker===2) getSectionIDs(parameters[0]||'',(v)=>res(v));
} catch(err) {rej(console.error(err))}
}).finally(()=>setActiveCharacterId(prevAcid));
}
return {
getAttrs(attrArray) {return promisifyWorker(0, [attrArray])},
setAttrs(attrObj, options) {return promisifyWorker(1, [attrObj, options])},
getSectionIDs(section) {return promisifyWorker(2, [section])},
setActiveCharacterId,
}
})();
</script>