Files
roll20-character-sheets/HORDE/horde.html
T
Gorthian d48d3654e7 Hotfix: Images
WEBP images not shown in sheet.
Changed to PNG
2025-04-22 18:45:48 +02:00

353 lines
15 KiB
HTML

<!--
CREATED by Gorthian
Version 1.1 HF1
Letzte Änderung 2025-04-22
GitHub https://github.com/Gorthian/Roll20_HORDE_CharacterSheet
Wiki
Bugs & Issues
-->
<!-- Globale Variablen-->
<!-- - Platz für globale Variablen, falls benötigt-->
<!--
********************************
* START horde.pug
********************************
-->
<!--
********************************
* START src/html/sheet.pug
********************************
-->
<div class="sheet-horde">
<div class="sheet-logo"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/HORDE_Logo.png"/></div>
<div class="sheet-kopfzeile sheet-horde-zeile">
<div class="sheet-name"><span data-i18n="name"></span>
<input type="text" value="" name="attr_character_name"/>
</div>
<div class="sheet-lebenspunkte"><span data-i18n="lebenspunkte"></span>
<input type="number" value="" name="attr_hp"/>
<input type="number" value="" name="attr_hp_max"/>
</div>
<div class="sheet-klasse"><span data-i18n="klasse"></span>
<input type="text" value="" name="attr_klasse"/>
</div>
</div>
<div class="sheet-attribute sheet-horde-zeile">
<!-- MIXIN : src/html/sheet.pug : attribut-->
<div class="sheet-attribut">
<h2 data-i18n="intelligenz"></h2>
<input class="sheet-d20" type="number" value="" name="attr_intelligenz"/>
<div class="sheet-attribut-wert">
<button class="sheet-d20" type="action" name="act_probe-intelligenz"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d20.png"/></button>
</div>
<div class="sheet-attribut-bonus">
<input type="number" value="" name="attr_intelligenz_bonus"/>
</div><span data-i18n="bonus"> </span>
</div>
<!-- MIXIN : src/html/sheet.pug : attribut-->
<div class="sheet-attribut">
<h2 data-i18n="mut"></h2>
<input class="sheet-d20" type="number" value="" name="attr_mut"/>
<div class="sheet-attribut-wert">
<button class="sheet-d20" type="action" name="act_probe-mut"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d20.png"/></button>
</div>
<div class="sheet-attribut-bonus">
<input type="number" value="" name="attr_mut_bonus"/>
</div><span data-i18n="bonus"> </span>
</div>
<!-- MIXIN : src/html/sheet.pug : attribut-->
<div class="sheet-attribut">
<h2 data-i18n="koerperkraft"></h2>
<input class="sheet-d20" type="number" value="" name="attr_koerperkraft"/>
<div class="sheet-attribut-wert">
<button class="sheet-d20" type="action" name="act_probe-koerperkraft"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d20.png"/></button>
</div>
<div class="sheet-attribut-bonus">
<input type="number" value="" name="attr_koerperkraft_bonus"/>
</div><span data-i18n="bonus"> </span>
</div>
<!-- MIXIN : src/html/sheet.pug : attribut-->
<div class="sheet-attribut">
<h2 data-i18n="geschick"></h2>
<input class="sheet-d20" type="number" value="" name="attr_geschick"/>
<div class="sheet-attribut-wert">
<button class="sheet-d20" type="action" name="act_probe-geschick"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d20.png"/></button>
</div>
<div class="sheet-attribut-bonus">
<input type="number" value="" name="attr_geschick_bonus"/>
</div><span data-i18n="bonus"> </span>
</div>
<!-- MIXIN : src/html/sheet.pug : attribut-->
<div class="sheet-attribut">
<h2 data-i18n="charisma"></h2>
<input class="sheet-d20" type="number" value="" name="attr_charisma"/>
<div class="sheet-attribut-wert">
<button class="sheet-d20" type="action" name="act_probe-charisma"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d20.png"/></button>
</div>
<div class="sheet-attribut-bonus">
<input type="number" value="" name="attr_charisma_bonus"/>
</div><span data-i18n="bonus"> </span>
</div>
</div>
<div class="sheet-inventar sheet-horde-zeile">
<h2 data-i18n="waffen"></h2>
<!-- MIXIN : src/html/sheet.pug : waffe-->
<div class="sheet-waffe">
<div class="sheet-waffe-ort">
<label for="attr_linke-hand" data-i18n="linke-hand"></label>
</div>
<div class="sheet-waffe-name">
<input type="text" value="" name="attr_linke-hand" id="attr_linke-hand"/>
</div>
<div class="sheet-waffe-attribut">
<select name="attr_linke-hand_attribut">
<option value="">-</option>
<option value="intelligenz" data-i18n="intelligenz"></option>
<option value="mut" data-i18n="mut"></option>
<option value="koerperkraft" data-i18n="koerperkraft"></option>
<option value="geschick" data-i18n="geschick"></option>
<option value="charisma" data-i18n="charisma"></option>
</select>
</div>
<div class="sheet-waffe-schaden">
<input type="number" value="1" name="attr_linke-hand_schaden"/><span data-i18n="d6"></span>
</div>
<div class="sheet-waffe-notiz">
<input type="text" value="" name="attr_linke-hand_notiz"/>
</div>
<div class="sheet-waffe-angriff">
<button class="sheet-d6" type="action" name="act_angriff-linke-hand"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d6.png"/></button>
</div>
</div>
<!-- MIXIN : src/html/sheet.pug : waffe-->
<div class="sheet-waffe">
<div class="sheet-waffe-ort">
<label for="attr_rechte-hand" data-i18n="rechte-hand"></label>
</div>
<div class="sheet-waffe-name">
<input type="text" value="" name="attr_rechte-hand" id="attr_rechte-hand"/>
</div>
<div class="sheet-waffe-attribut">
<select name="attr_rechte-hand_attribut">
<option value="">-</option>
<option value="intelligenz" data-i18n="intelligenz"></option>
<option value="mut" data-i18n="mut"></option>
<option value="koerperkraft" data-i18n="koerperkraft"></option>
<option value="geschick" data-i18n="geschick"></option>
<option value="charisma" data-i18n="charisma"></option>
</select>
</div>
<div class="sheet-waffe-schaden">
<input type="number" value="1" name="attr_rechte-hand_schaden"/><span data-i18n="d6"></span>
</div>
<div class="sheet-waffe-notiz">
<input type="text" value="" name="attr_rechte-hand_notiz"/>
</div>
<div class="sheet-waffe-angriff">
<button class="sheet-d6" type="action" name="act_angriff-rechte-hand"><img src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/HORDE/images/d6.png"/></button>
</div>
</div>
</div>
<div class="sheet-staerken-schwaechen sheet-horde-zeile">
<div class="sheet-staerken">
<h2 data-i18n="staerken"></h2>
<textarea name="attr_staerken"></textarea>
</div>
<div class="sheet-schwaechen">
<h2 data-i18n="schwaechen"></h2>
<textarea name="attr_schwaechen"></textarea>
</div>
</div>
<div class="sheet-notizen sheet-horde-zeile">
<h2 data-i18n="notizen"></h2>
<textarea name="attr_notizen"></textarea>
</div>
<div class="sheet-vergangenheit sheet-horde-zeile">
<h2 data-i18n="vergangenheit"></h2>
<textarea name="attr_vergangenheit"></textarea>
</div>
<div class="sheet-inventar sheet-horde-zeile">
<h2 data-i18n="accessoirs"></h2>
<!-- MIXIN : src/html/sheet.pug : item-->
<div class="sheet-item">
<label for="attr_finger-1" data-i18n="finger-1"></label>
<input type="text" value="" id="attr_finger-1" name="attr_finger-1"/>
</div>
<!-- MIXIN : src/html/sheet.pug : item-->
<div class="sheet-item">
<label for="attr_finger-2" data-i18n="finger-2"></label>
<input type="text" value="" id="attr_finger-2" name="attr_finger-2"/>
</div>
<!-- MIXIN : src/html/sheet.pug : item-->
<div class="sheet-item">
<label for="attr_hals" data-i18n="hals"></label>
<input type="text" value="" id="attr_hals" name="attr_hals"/>
</div>
<!-- MIXIN : src/html/sheet.pug : item-->
<div class="sheet-item">
<label for="attr_ruecken" data-i18n="ruecken"></label>
<input type="text" value="" id="attr_ruecken" name="attr_ruecken"/>
</div>
<h2 data-i18n="rucksack"></h2>
<textarea name="attr_rucksack"></textarea>
</div>
</div>
<!--
********************************
* ENDE src/html/sheet.pug
********************************
-->
<!--
********************************
* START src/html/rolltemplates.pug
********************************
-->
<rolltemplate class="sheet-rolltemplate-attributsprobe">
<div class="sheet-template-container">
<div class="sheet-template-header">{{attribut}} gegen {{computed::schwierigkeit}}</div>
<div class="sheet-template-row">
<div class="sheet-template-column">Bonus : </div>
<div class="sheet-template-column">{{computed::bonus}}</div>
</div>
<div class="sheet-template-row">
<div class="sheet-template-column">Wurf: </div>
<div class="sheet-template-column">{{computed::wurf}}</div>
</div>
<div class="sheet-template-desc">{{computed::beschreibung}}</div>
</div>
</rolltemplate>
<rolltemplate class="sheet-rolltemplate-angriff">
<div class="sheet-template-container">
<div class="sheet-template-header">Angriff mit {{waffe}}</div>
<div class="sheet-template-row">
<div class="sheet-template-column">Attribut : </div>
<div class="sheet-template-column">{{attribut}}</div>
</div>
<div class="sheet-template-row">
<div class="sheet-template-column">Wurf: </div>
<div class="sheet-template-column">{{computed::wurf}}</div>
</div>{{#rollGreater() computed::fehlschlag 0}}
<div class="sheet-template-row">
<div class="sheet-template-column">Fehlschäge: </div>
<div class="sheet-template-column">{{computed::fehlschlag}}</div>
</div>{{/rollGreater() computed::fehlschlag 0}}
{{#rollGreater() computed::leichter_treffer 0}}
<div class="sheet-template-row">
<div class="sheet-template-column">Leichte Treffer: </div>
<div class="sheet-template-column">{{computed::leichter_treffer}}</div>
</div>{{/rollGreater() computed::leichter_treffer 0}}
{{#rollGreater() computed::mittlerer_treffer 0}}
<div class="sheet-template-row">
<div class="sheet-template-column">Mittlere Treffer: </div>
<div class="sheet-template-column">{{computed::mittlerer_treffer}}</div>
</div>{{/rollGreater() computed::mittlerer_treffer 0}}
{{#rollGreater() computed::kritischer_treffer 0}}
<div class="sheet-template-row">
<div class="sheet-template-column">Kritischer Treffer: </div>
<div class="sheet-template-column">{{computed::kritischer_treffer}}</div>
</div>{{/rollGreater() computed::kritischer_treffer 0}}
<div class="sheet-template-desc">{{notiz}}</div>
</div>
</rolltemplate>
<!--
********************************
* ENDE src/html/rolltemplates.pug
********************************
-->
<!-- SHEET WORKERS-->
<script type="text/worker">function attributsprobe(attribut) {
// console.log("Starte Attributsprobe");
getAttrs([attribut,attribut+"_bonus"], function(values) {
let schwierigkeit = parseInt(values[attribut]||0);
let bonus = parseInt(values[attribut+"_bonus"]||0);
startRoll("&{template:attributsprobe} {{attribut="+getTranslationByKey(attribut)+"}} {{wurf=[[1d20]]}} {{schwierigkeit=[["+schwierigkeit+"]]}} {{bonus=[["+bonus+"]]}} {{beschreibung=[[0]]}}", (results) => {
const wurf = results.results.wurf.result
const schwierigkeit = results.results.schwierigkeit.result;
const bonus = results.results.bonus.result;
let ergebnis = schwierigkeit+bonus-wurf;
let beschreibung = "";
if (ergebnis < -10) {beschreibung = getTranslationByKey("info-katastrophaler_fehlschlag");} else
if (ergebnis < -5 && ergebnis > -11) {beschreibung = getTranslationByKey("info-unangenehmer_fehlschlag");} else
if (ergebnis < 0 && ergebnis > -6) {beschreibung = getTranslationByKey("info-einfacher_fehlschlag");} else
if (ergebnis == 0) {beschreibung = getTranslationByKey("info-erfolg");} else
if (ergebnis > 0 && ergebnis < 6) {beschreibung = getTranslationByKey("info-einfacher_erfolg");} else
if (ergebnis > 5 && ergebnis < 11) {beschreibung = getTranslationByKey("info-besonderer_erfolg");} else
if (ergebnis > 10) {beschreibung = getTranslationByKey("info-exzellenter_erfolg");}
// console.log(beschreibung);
finishRoll(
results.rollId,
{
wurf: wurf,
schwierigkeit: schwierigkeit,
bonus: bonus,
beschreibung: beschreibung
}
)
});
});
}
function angriff(waffe) {
// console.log("Starte Angriffs");
getAttrs([waffe,waffe+"_attribut",waffe+"_schaden",waffe+"_notiz"], function(values) {
let name = values[waffe]||"";
let attribut = values[waffe+"_attribut"]||"";
let schaden = parseInt(values[waffe+"_schaden"]||1);
let notiz = values[waffe+"_notiz"]||"";
startRoll("&{template:angriff} {{waffe="+name+"}} {{attribut="+getTranslationByKey(attribut)+"}} {{wurf=[["+schaden+"d6]]}} {{notiz="+notiz+"}} {{fehlschlag=[[0]]}} {{leichter_treffer=[[0]]}} {{mittlerer_treffer=[[0]]}} {{kritischer_treffer=[[0]]}}", (results) => {
const wuerfel = results.results.wurf.dice;
const wurf = results.results.wurf.dice.toString()
let fehlschlag = 0;
let leichter_treffer = 0;
let mittlerer_treffer = 0;
let kritischer_treffer = 0;
for (ergebnis of wuerfel) {
if (ergebnis == 1) fehlschlag = fehlschlag +1;
if (ergebnis == 2) leichter_treffer = leichter_treffer +1;
if (ergebnis == 3) leichter_treffer = leichter_treffer +1;
if (ergebnis == 4) mittlerer_treffer = mittlerer_treffer +1;
if (ergebnis == 5) mittlerer_treffer = mittlerer_treffer +1;
if (ergebnis == 6) kritischer_treffer = kritischer_treffer +1;
}
// console.log(fehlschlag+","+leichter_treffer+","+mittlerer_treffer+","+kritischer_treffer);
finishRoll(
results.rollId,
{
wurf: wurf,
fehlschlag: fehlschlag,
leichter_treffer: leichter_treffer,
mittlerer_treffer: mittlerer_treffer,
kritischer_treffer: kritischer_treffer
}
)
});
});
}
['intelligenz', 'mut', 'koerperkraft', 'geschick', 'charisma'].forEach(attr => {
on(`clicked:probe-${attr}`, function() {
attributsprobe(attr);
});
});
['linke-hand', 'rechte-hand'].forEach(waffe => {
on(`clicked:angriff-${waffe}`, function() {
angriff(waffe);
});
});
</script>
<!--
********************************
* ENDE horde.pug
********************************
-->