mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-31 04:02:29 +00:00
Technical optimisations of some sheet workers with the new eventinfo.newvalue, and somes bug fixes for Antika, Cahiers du Vastemonde, Cypher System (english and french), Dungeon World (french), Mordiou, Portes Montres Trésors, Savage Worlds (french), SIG the city between, Swords & Wizardry and White Lies.
734 lines
40 KiB
HTML
734 lines
40 KiB
HTML
<!-- === WORKERS === -->
|
|
<script type="text/worker">
|
|
on("change:STR", function(eventinfo){
|
|
var carac = parseInt(eventinfo.newValue) || 0;
|
|
var tohit = 0;
|
|
var dmg = 0;
|
|
var carry = 0;
|
|
var door = 0;
|
|
if (carac>2 && carac<5) {
|
|
tohit = -2;
|
|
dmg = -1;
|
|
door = 1;
|
|
carry = -10;
|
|
}
|
|
else if (carac>4 && carac<7) {
|
|
tohit=-1;
|
|
dmg = 0;
|
|
door = 1;
|
|
carry = -5;
|
|
}
|
|
else if (carac>6 && carac<9) {
|
|
tohit=0;
|
|
dmg = 0;
|
|
door = 2;
|
|
carry = 0;
|
|
}
|
|
else if (carac>8 && carac<13) {
|
|
tohit=-1;
|
|
dmg = 0;
|
|
door = 2;
|
|
carry = 5;
|
|
}
|
|
else if (carac>12 && carac<16) {
|
|
tohit=1;
|
|
dmg = 0;
|
|
door = 2;
|
|
carry = 10;
|
|
}
|
|
else if (carac == 16) {
|
|
tohit=1;
|
|
dmg = 1;
|
|
door = 3;
|
|
carry = 15;
|
|
}
|
|
else if (carac == 17) {
|
|
tohit=2;
|
|
dmg = 2;
|
|
door = 4;
|
|
carry = 30;
|
|
}
|
|
else if (carac > 17) {
|
|
tohit=2;
|
|
dmg = 3;
|
|
door = 5;
|
|
carry = 50;
|
|
}
|
|
setAttrs({
|
|
meleehitbonus: tohit,
|
|
meleedmgbonus: dmg,
|
|
carrybonus: carry,
|
|
opendoors: door
|
|
});
|
|
});
|
|
on("change:DEX", function(){
|
|
getAttrs(["DEX","typeac"], function(values) {
|
|
var carac = parseInt(values.DEX) || 0;
|
|
var typeac = parseInt(values.typeac) || 0;
|
|
var tohit = 0;
|
|
var ac = 0;
|
|
if (carac>2 && carac<9) {
|
|
tohit = -1;
|
|
if (typeac == 0) {
|
|
ac = -1;
|
|
} else {
|
|
ac = 1;
|
|
}
|
|
}
|
|
else if (carac>8 && carac<13) {
|
|
tohit = 0;
|
|
ac = 0;
|
|
}
|
|
else if (carac > 12) {
|
|
tohit = 1;
|
|
if (typeac == 0) {
|
|
ac = 1;
|
|
} else {
|
|
ac = -1;
|
|
}
|
|
}
|
|
setAttrs({
|
|
missilehitbonus: tohit,
|
|
dexac: ac
|
|
});
|
|
});
|
|
});
|
|
on("change:CON", function(eventinfo){
|
|
var carac = parseInt(eventinfo.newValue) || 0;
|
|
var hp = 0;
|
|
var raise = 75;
|
|
if (carac>2 && carac<9) {
|
|
hp = -1;
|
|
raise = 50;
|
|
}
|
|
else if (carac>8 && carac<13) {
|
|
hp = 0;
|
|
raise = 75;
|
|
}
|
|
else if (carac > 12) {
|
|
hp = 1;
|
|
raise = 100;
|
|
}
|
|
setAttrs({
|
|
hdbonus: hp,
|
|
raisedeadpct: raise
|
|
});
|
|
});
|
|
on("change:INT", function(eventinfo){
|
|
var carac = parseInt(eventinfo.newValue) || 0;
|
|
var lang = 0;
|
|
var spell = 0;
|
|
var newspell = 0;
|
|
var minmax = '2/4';
|
|
if (carac>2 && carac<8) {
|
|
lang = 0;
|
|
spell = 4;
|
|
newspell = 30;
|
|
minmax = '2/4';
|
|
}
|
|
else if (carac == 7) {
|
|
lang = 0;
|
|
spell = 4;
|
|
newspell = 30;
|
|
minmax = '2/4';
|
|
}
|
|
else if (carac == 8) {
|
|
lang = 1;
|
|
spell = 5;
|
|
newspell = 40;
|
|
minmax = '3/5';
|
|
}
|
|
else if (carac == 9) {
|
|
lang = 1;
|
|
spell = 5;
|
|
newspell = 45;
|
|
minmax = '3/5';
|
|
}
|
|
else if (carac == 10) {
|
|
lang = 2;
|
|
spell = 5;
|
|
newspell = 50;
|
|
minmax = '4/6';
|
|
}
|
|
else if (carac == 11) {
|
|
lang = 2;
|
|
spell = 6;
|
|
newspell = 50;
|
|
minmax = '4/6';
|
|
}
|
|
else if (carac == 12) {
|
|
lang = 3;
|
|
spell = 5;
|
|
newspell = 55;
|
|
minmax = '4/6';
|
|
}
|
|
else if (carac == 13) {
|
|
lang = 3;
|
|
spell = 7;
|
|
newspell = 55;
|
|
minmax = '5/8';
|
|
}
|
|
else if (carac == 14) {
|
|
lang = 2;
|
|
spell = 5;
|
|
newspell = 50;
|
|
minmax = '4/6';
|
|
}
|
|
else if (carac == 15) {
|
|
lang = 4;
|
|
spell = 8;
|
|
newspell = 75;
|
|
minmax = '6/10';
|
|
}
|
|
else if (carac == 16) {
|
|
lang = 5;
|
|
spell = 8;
|
|
newspell = 75;
|
|
minmax = '6/10';
|
|
}
|
|
else if (carac == 17) {
|
|
lang = 5;
|
|
spell = 9;
|
|
newspell = 85;
|
|
minmax = '7/All';
|
|
}
|
|
else if (carac > 17) {
|
|
lang = 6;
|
|
spell = 9;
|
|
newspell = 95;
|
|
minmax = '8/All';
|
|
}
|
|
setAttrs({
|
|
xtralangs: lang,
|
|
maxspelllevel: spell,
|
|
newspellpct: newspell,
|
|
minmaxspell: minmax
|
|
});
|
|
});
|
|
on("change:WIS", function(eventinfo){
|
|
var carac = parseInt(eventinfo.newValue) || 0;
|
|
var clericspell = 0;
|
|
if (carac > 14) {
|
|
clericspell = 1;
|
|
}
|
|
setAttrs({
|
|
xtraclericspells: clericspell
|
|
});
|
|
});
|
|
on("change:CHA", function(eventinfo){
|
|
var carac = parseInt(eventinfo.newValue) || 0;
|
|
var hirelings = 0;
|
|
if (carac>2 && carac<5) {
|
|
hirelings = 1;
|
|
}
|
|
else if (carac>4 && carac<7) {
|
|
hirelings=2;
|
|
}
|
|
else if (carac>6 && carac<9) {
|
|
hirelings=3;
|
|
}
|
|
else if (carac>8 && carac<13) {
|
|
hirelings=4;
|
|
}
|
|
else if (carac>12 && carac<16) {
|
|
hirelings=5;
|
|
}
|
|
else if (carac > 15 && carac < 18) {
|
|
hirelings=6;
|
|
}
|
|
else if (carac > 17) {
|
|
hirelings=7;
|
|
}
|
|
setAttrs({
|
|
xtrahirelings: hirelings
|
|
});
|
|
});
|
|
on("change:typeac", function() {
|
|
getAttrs(["typeac","DEX"], function(values) {
|
|
var typeac = parseInt(values.typeac) || 0;
|
|
var carac = parseInt(values.DEX) || 0;
|
|
var baseac = 0;
|
|
var ac = 0;
|
|
if(typeac == 0) {
|
|
baseac = 10;
|
|
} else {
|
|
baseac = 9;
|
|
}
|
|
if (carac>2 && carac<9) {
|
|
if (typeac == 0) {
|
|
ac = -1;
|
|
} else {
|
|
ac = 1;
|
|
}
|
|
}
|
|
else if (carac>8 && carac<13) {
|
|
ac = 0;
|
|
}
|
|
else if (carac > 12) {
|
|
if (typeac == 0) {
|
|
ac = 1;
|
|
} else {
|
|
ac = -1;
|
|
}
|
|
}
|
|
setAttrs({
|
|
baseac: baseac,
|
|
dexac: ac
|
|
});
|
|
});
|
|
});
|
|
on("change:dexac change:baseac change:armorac change:shieldrac change:otherac", function() {
|
|
getAttrs(["dexac","typeac","baseac","armorac","shieldrac","otherac"], function(values) {
|
|
var dexac = parseInt(values.dexac) || 0;
|
|
var typeac = parseInt(values.typeac) || 0;
|
|
var baseac = parseInt(values.baseac) || 0;
|
|
var armorac = parseInt(values.armorac) || 0;
|
|
var shieldrac = parseInt(values.shieldrac) || 0;
|
|
var otherac = parseInt(values.otherac) || 0;
|
|
var totalac = 0;
|
|
if (typeac == 0 ) {
|
|
totalac = baseac + dexac + Math.abs(armorac) + Math.abs(shieldrac) + otherac;
|
|
} else {
|
|
totalac = baseac + dexac - Math.abs(armorac) - Math.abs(shieldrac) + otherac;
|
|
}
|
|
setAttrs({
|
|
AC: totalac
|
|
});
|
|
});
|
|
});
|
|
on("sheet:opened",function(){
|
|
getAttrs(["sheetversion"], function(values) {
|
|
var vers = parseFloat(values.sheetversion) || 0;
|
|
if (vers < 2.0) {
|
|
getAttrs(["maxhp","gearwt"], function(values) {
|
|
var oldhp = parseInt(values.maxhp) || 0;
|
|
var oldwt = parseFloat(values.gearwt) || 0.0;
|
|
setAttrs({
|
|
hp_max: oldhp,
|
|
gearweight: oldwt,
|
|
sheetversion: 2.1
|
|
});
|
|
});
|
|
}
|
|
});
|
|
});
|
|
on("change:repeating_treasure:treasurewt remove:repeating_treasure",function(){
|
|
getSectionIDs("repeating_treasure", function(idws) {
|
|
var totwght = 0.0;
|
|
idws.forEach(function(idw,index,arr){
|
|
var uwght = "repeating_treasure_" + idw + "_treasurewt";
|
|
var lng = parseInt(arr.length) || 0;
|
|
getAttrs(['' + uwght], function(val) {
|
|
var swght = parseFloat(val[uwght]) || 0.0;
|
|
totwght = totwght + swght;
|
|
if ( (index+1) == lng ){
|
|
setAttrs({
|
|
treasurewt: totwght
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
on("change:repeating_gear:gearqty change:repeating_gear:gearwt remove:repeating_gear",function(){
|
|
getSectionIDs("repeating_gear", function(idws) {
|
|
var totwght = 0.0;
|
|
idws.forEach(function(idw,index,arr){
|
|
var uqte = "repeating_gear_" + idw + "_gearqty";
|
|
var uwght = "repeating_gear_" + idw + "_gearwt";
|
|
var lng = parseInt(arr.length) || 0;
|
|
getAttrs(['' + uqte,'' + uwght], function(val) {
|
|
var sqte = parseFloat(val[uqte]) || 0.0;
|
|
var swght = parseFloat(val[uwght]) || 0.0;
|
|
totwght = totwght + (sqte * swght);
|
|
if ( (index+1) == lng ){
|
|
setAttrs({
|
|
gearweight: totwght
|
|
});
|
|
}
|
|
});
|
|
});
|
|
});
|
|
});
|
|
on("change:gearweight change:treasurewt", function(){
|
|
getAttrs(["gearweight","treasurewt"], function(val){
|
|
var tot = (parseFloat(val.gearweight) || 0.0) + (parseFloat(val.treasurewt) || 0.0);
|
|
setAttrs({
|
|
totalweight: tot
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
<!-- === SHEET === -->
|
|
<input type="hidden" name="attr_sheetversion" value="1.0" />
|
|
<div class="sheet-main">
|
|
<div class="sheet-ligne"> <!-- LINE 1 -->
|
|
<div class="mycol sheet-bord"> <!-- BIO and PHYISCAL -->
|
|
<div class="sheet-ligne" style="margin-bottom: 2px;">
|
|
<span class="sheet-libred" data-i18n="biographical-and-physical">Biographical & Physical</span>
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="name">Name</span>
|
|
<input type="text" class="sheet-biginput" name="attr_character_name" />
|
|
</div>
|
|
<div class="sheet-mycol" style="width: 275px;">
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="class">Class</span>
|
|
<input type="text" class="sheet-longinput" name="attr_class" data-i18n-placeholder="class" placeholder="Class"/>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="primary">Primary</span>
|
|
<input type="text" class="sheet-medinput" name="attr_primattr" data-i18n-placeholder="attribute" placeholder="Attribute" data-i18n-title="primary-attribute" title="Primary Attribute" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="alignment">Alignment</span>
|
|
<input type="text" class="sheet-medinput" name="attr_align" data-i18n-placeholder="alignment" placeholder="Alignment" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="deity">Deity</span>
|
|
<input type="text" class="sheet-medinput" name="attr_diety" data-i18n-placeholder="deity" placeholder="Deity" />
|
|
</div>
|
|
</div>
|
|
<div class="sheet-mycol sheet-greybg" style="width: 275px;">
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="race">Race</span>
|
|
<input type="text" class="sheet-longinput" name="attr_race" data-i18n-placeholder="race" placeholder="Race" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="age">Age</span>
|
|
<input type="text" name="attr_age" class="sheet-shortinput" data-i18n-placeholder="age" placeholder="Age" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="gender">Gender</span>
|
|
<input type="text" name="attr_gender" class="sheet-shortinput" data-i18n-placeholder="gender" placeholder="Gender" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="charheight">Height</span>
|
|
<input type="text" name="attr_height" class="sheet-shortinput" data-i18n-placeholder="charheight" placeholder="Height" />
|
|
<span class="sheet-lib0" data-i18n="charweight">Weight</span>
|
|
<input type="text" name="attr_weight" class="sheet-shortinput" data-i18n-placeholder="charweight" placeholder="Weight" />
|
|
</div>
|
|
</div>
|
|
</div> <!-- END BIO and PHYISCAL -->
|
|
<div class="sheet-mycol"> <!-- LOGO and Languages -->
|
|
<div class="sheet-ligne" style="text-align: center;">
|
|
<img style="width:300px;" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Swords_%26_Wizardry/SWSheet_logo.gif" alt="Swords & Wizardry">
|
|
</div>
|
|
<div class="sheet-ligne" style="text-align: center;">
|
|
<span class="sheet-lib1 sheet-wid70" data-i18n="languages">Languages</span>
|
|
<textarea style="width:170px;height:48px;" name="attr_langs" data-i18n-placeholder="languages" placeholder="Languages"></textarea>
|
|
</div>
|
|
</div> <!-- END LOGO and Languages -->
|
|
</div> <!-- END LINE 1 -->
|
|
<div class="sheet-ligne"> <!-- LINE 2 -->
|
|
<div class="sheet-mycol">
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-libred" data-i18n="health">Health</span><span class="sheet-libred"> & </span><span class="sheet-libred" data-i18n="XP">XP</span>
|
|
</div>
|
|
<div class="sheet-ligne"> <!--XP and Level-->
|
|
<div class="sheet-mycol" style="width:310px;">
|
|
<span class="sheet-lib1" data-i18n="HP">HP</span>
|
|
<input type="number" name="attr_hp" value="0" class="sheet-shortinput" data-i18n-title="current-hp" title="Current HP" />
|
|
/
|
|
<input type="number" name="attr_hp_max" value="0" class="sheet-shortinput" data-i18n-title="maximum-hp" title="Current HP"/>
|
|
<span class="sheet-lib1 sheet-wid30" data-i18n="HD">HD</span>
|
|
<button type="roll" name="RollHD" data-i18n-title="roll-hd" title="Roll HD" value="&{template:tmpl} {{pc=@{character_name}}} {{hd=1}} {{roll=[[@{hd}]]}}"></button>
|
|
<input type="text" name="attr_hd" class="sheet-medinput" data-i18n-placeholder="hd-example" placeholder="Ex:5d6+5" />
|
|
</div>
|
|
<div class="sheet-mycol sheet-greybg" style="width:550px;">
|
|
<span class="sheet-lib1 sheet-wid80" data-i18n="level">Level</span>
|
|
<input type="number" name="attr_level" value="1" class="sheet-stats" />
|
|
<span class="sheet-lib1 sheet-wid50" data-i18n="XP">XP</span>
|
|
<input type="number" name="attr_xp" value="0" class="sheet-medinput" data-i18n-title="current-xp" title="Current XP"/>
|
|
/
|
|
<input type="number" name="attr_nextlvl" value="0" class="sheet-medinput" data-i18n-title="next-level" title="Next Level"/>
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="bonus-xp-percent">Bonus XP%</span>
|
|
<input type="number" name="attr_bonusxppct" value="0" class="sheet-shortinput" data-i18n-title="bonus-xp-tooltip" title="To calculate XP Bonus: Add 5% for each CHA, WIS and Char's Primary Attribute that is >=13" />
|
|
</div>
|
|
</div> <!--END XP and Level-->
|
|
</div> <!-- END LINE 2 -->
|
|
</div>
|
|
<div class="sheet-ligne"> <!-- LINE 3 -->
|
|
<div class="sheet-mycol sheet-bord" style="width:306px;"> <!--ATTRIBUTES-->
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-libred" data-i18n="attributes">Attributes</span>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="STR">STR</span>
|
|
<input type="number" name="attr_STR" value="0" class="sheet-stats" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="to-hit">To-Hit</span>
|
|
<input type="number" name="attr_meleehitbonus" value="0"class="sheet-tinyinput" data-i18n-title="melee-to-hit-mod" title="Melee To-Hit Modifier. Automatically calculted when STR is modified. Can be overriden." />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="damage">Damage</span>
|
|
<input type="number" class="sheet-tinyinput" name="attr_meleedmgbonus" value="0" data-i18n-title="melee-damage-modifier" title="Melee Damage Modifier. Automatically calculted when STR is modified. Can be overriden."/>
|
|
</div>
|
|
<div class="sheet-ligne" style="padding-left: 72px;">
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="carry">Carry</span>
|
|
<input type="number" class="sheet-tinyinput" name="attr_carrybonus" value="0" data-i18n-title="carry-modifier" title="Carry Modifier. Automatically calculted when STR is modified. Can be overriden."/>
|
|
<span class="sheet-libmin1" style="width:39px;" data-i18n="doors">Doors</span>
|
|
<button type="roll" name="RollOpenDoor" data-i18n-title="open-doors" title="Open Doors" value="&{template:tmpl} {{pc=@{character_name}}} {{name=^{open-doors}}} {{talent=1}} {{roll=[[1d6cs1cf6]]}} {{target=[[@{opendoors}]]}}" /></button>
|
|
<input type="number" class="sheet-tinyinput" name="attr_opendoors" value="1" data-i18n-title="open-doors-title" title="Open Doors. Automatically calculted when STR is modified. Can be overriden."/>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="DEX">DEX</span>
|
|
<input type="number" class="sheet-stats" name="attr_DEX" value="0" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="to-hit">To-Hit</span>
|
|
<input type="number" name="attr_missilehitbonus" class="sheet-tinyinput" value="0" data-i18n-title="missile-to-hit-mod" title="Missile Weapon To-Hit Bonus/Penalty. Automatically calculted when DEX is modified. Can be overriden."/>
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="AC+">AC+</span>
|
|
<input type="number" name="attr_dexac" class="sheet-tinyinput" value="0" data-i18n-title="effect-on-ac" title="Effect on Armor Class. If DEX is modified, will be automatically calculted, depending on the Ascending or Descending AC choice. Can be overriden." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="CON">CON</span>
|
|
<input type="number" name="attr_CON" value="0" class="sheet-stats" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="hit-dice+">Hit Dice+</span>
|
|
<input type="number" name="attr_hdbonus" class="sheet-tinyinput" value="0" data-i18n-title="hp-mod" title="Hit Point Modifier (per hit die). Automatically calculted when CON is modified. Can be overriden." />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="raise-dead%">Raise Dead%</span>
|
|
<input type="number" name="attr_raisedeadpct" value="0" class="sheet-tinyinput" data-i18n-title="raise-dead-survival" title="Raise Dead Survival. Automatically calculted when CON is modified. Can be overriden." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="INT">INT</span>
|
|
<input type="number" class="sheet-stats" name="attr_INT" value="0" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="spell-level">Spell level</span>
|
|
<input type="number" name="attr_maxspelllevel" class="sheet-tinyinput" value="0" data-i18n-title="maximum-spell-level" title="Maximum Spell Level. Automatically calculted when INT is modified. Can be overriden." />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="languages">Languages</span>
|
|
<input type="number" name="attr_xtralangs" class="sheet-tinyinput" value="0" data-i18n-title="maximum-additional-languages" title="Maximum Additional Languages. Automatically calculted when INT is modified. Can be overriden." />
|
|
</div>
|
|
<div class="sheet-ligne" style="padding-left: 72px;">
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="new-spell%">New Spell%</span>
|
|
<input type="number" class="sheet-tinyinput" name="attr_newspellpct" value="0" data-i18n-title="chance-new-spell" title="Chance to Understand New Spell. Automatically calculted when INT is modified. Can be overriden." />
|
|
<span class="sheet-libmin1" data-i18n="min-max-spells">Min/Max Spells</span>
|
|
<input type="text" class="sheet-tinyinput" name="attr_minmaxspell" value="0/0" data-i18n-title="min-max-spells-title" title="Min/Max Spells. Automatically calculted when INT is modified. Can be overriden."/>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="WIS">WIS</span>
|
|
<input type="number" name="attr_WIS" class="sheet-stats" value="0" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="cleric-spells+">Cleric Spells+</span>
|
|
<input type="number" name="attr_xtraclericspells" class="sheet-tinyinput" value="0" data-i18n-title="cleric-spells-plus" title="Additional first-level Cleric spell. Automatically calculted when WIS is modified. Can be overriden." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib0 sheet-wid30" data-i18n="CHA">CHA</span>
|
|
<input type="number" class="sheet-stats" name="attr_CHA" value="0" />
|
|
<span class="sheet-libmin1 sheet-wid70" data-i18n="hirelings">Hirelings</span>
|
|
<input type="number" name="attr_xtrahirelings" value="0" class="sheet-tinyinput" data-i18n-title="extra-hirelings" title="Maximum Number of Special Hirelings. Automatically calculted when CHA is modified. Can be overriden." />
|
|
</div>
|
|
</div> <!--END ATTRIBUTES-->
|
|
<div style="display: inline-block;">
|
|
<div class="sheet-ligne"> <!-- DEF & ST -->
|
|
<div class="sheet-mycol sheet-greybg" style="margin-top: 4px;"> <!--DEFENSE-->
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-libred" data-i18n="defense">Defense</span>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="base-ac">Base AC</span>
|
|
<div style="display: inline-block; width: 110px; text-align: center;">
|
|
<input type="radio" name="attr_typeac" value="0" checked data-i18n-title="ascending-ac" title="Ascending AC System">
|
|
<span class="sheet-libmin1" data-i18n="asc-ac">Asc.</span>
|
|
</input>
|
|
<input type="radio" name="attr_typeac" value="1" data-i18n-title="descending-ac" title="Descending AC System">
|
|
<span class="sheet-libmin1" data-i18n="desc-ac">Desc.</span>
|
|
</input>
|
|
</div>
|
|
<input type="number" name="attr_baseac" value="10" class="sheet-shortinput" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid50" style="margin-right: 110px;" data-i18n="dex-mod">DEX mod.</span>
|
|
<input type="number" name="attr_dexacrep" value="[[@{dexac}]]" class="sheet-shortinput" disabled />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="armor">Armor</span>
|
|
<input type="text" class="sheet-medinput" name="attr_armorname" data-i18n-placeholder="armor-name" placeholder="Armor name" />
|
|
<input type="number" class="sheet-shortinput" value="0" name="attr_armorac" data-i18n-title="armor-ac-effect" title="Armor effect on AC. Use either a positive or negative value, as the total AC will be calculted using an absolute value, depending on the Ascending or Descending AC choice." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="shield">Shield</span>
|
|
<input type="text" class="sheet-medinput" name="attr_shieldname" data-i18n-placeholder="shield-name" placeholder="Shield name" />
|
|
<input type="number" class="sheet-shortinput" value="0" name="attr_shieldrac" data-i18n-title="shield-ac-effect" title="Shield effect on AC. Use either a positive or negative value, as the total AC will be calculted using an absolute value, depending on the Ascending or Descending AC choice."/>
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="other">Other</span>
|
|
<input type="text" class="sheet-medinput" name="attr_otheracname" data-i18n-placeholder="note" placeholder="Note" />
|
|
<input type="number" class="sheet-shortinput" value="0" name="attr_otherac" data-i18n-title="other-ac-effect" title="Other effect on AC. The value will be used (added) as written, NOT depending on the Ascending or Descending AC choice, so that malus can be set."/>
|
|
</div>
|
|
<div class="sheet-ligne" style="text-align: right;">
|
|
<span class="sheet-lib1" data-i18n="total-ac">Total AC</span>
|
|
<input type="number" name="attr_AC" value="10"class="sheet-shortinput" style="font-weight: bold;" data-i18n-title="total-ac-title" title="Final AC. Automatically calculted from the DEX, Armor, Shield, Other AC modifiers and the Ascending or Descending choice, but can be overriden." />
|
|
</div>
|
|
</div> <!--END DEFENSE-->
|
|
<div class="sheet-mycol sheet-bord" style="width: 305px;"> <!--SAVING THROWS-->
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-libred" data-i18n="saving-throw">Saving Throw</span>
|
|
<button type="roll" name="RollSavingThrow" data-i18n-title="roll-base-saving-throw" title="Roll base Saving Throw" value="&{template:tmpl} {{pc=@{character_name}}} {{save=1}} {{roll=[[1d20cs20cf1]]}} {{target=[[@{savingthrow}]]}}"></button>
|
|
<input type="number" name="attr_savingthrow" value="15" class="sheet-shortinput" />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib1" data-i18n="bonuses">Bonuses</span>:
|
|
</div>
|
|
<fieldset class="repeating_savingthrowbonus">
|
|
<div class="sheet-ligne">
|
|
<input type="text" name="attr_stbonus" data-i18n-placeholder="saving-throw-bonus-note" placeholder="Ex: against being paralyzed or poisoned" />
|
|
<button type="roll" name="RollSavingThrowBonus" data-i18n-title="roll-bonus-saving-throw" title="Roll bonus Saving Throw" value="&{template:tmpl} {{pc=@{character_name}}} {{name=@{stbonus}}} {{save=1}} {{roll=[[1d20cs20cf1+@{stbonusvalue}]]}} {{target=[[@{savingthrow}]]}}"></button>
|
|
<input type="number" name="attr_stbonusvalue" value="2" class="sheet-shortinput" />
|
|
</div>
|
|
</fieldset>
|
|
</div> <!-- END SAVING THROWS -->
|
|
</div> <!-- END DEF & ST -->
|
|
<div class="sheet-greybg" style="width:550px; margin-top: 4px;">
|
|
<div class="sheet-ligne"> <!-- MOVEMENT -->
|
|
<span class="sheet-libred" data-i18n="movement">Movement</span>
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="move-squares">Move Squares</span>
|
|
<input type="number" name="attr_movesquares" value="4" class="sheet-shortinput" data-i18n-title="movesquares-title" title="Base movement. Not calculted automatically. Has to be input manually, depending on the house rules and distance measurement used in the game." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid70" data-i18n="total-weight">Total Wt.</span>
|
|
<input type="number" name="attr_totalweight" value="0" class="sheet-medinput" data-i18n-title="totalweight-title" title="Total weight. Automatically calculted based on the treasure and gear weights. Can be overriden." />
|
|
=
|
|
<span class="sheet-lib2 sheet-wid70" data-i18n="gear-wt">Gear Wt.</span>
|
|
<input type="number" name="attr_gearweight" value="0" class="sheet-medinput" data-i18n-title="gear-wt-title" title="Total gear weight. Automatically calculted based on (quantity * weight) of each item in the gear list. Can be overriden." />
|
|
+
|
|
<span class="sheet-lib2 sheet-wid70" data-i18n="treasure-wt">Treasure Wt.</span>
|
|
<input type="number" name="attr_treasurewt" value="0" class="sheet-medinput" data-i18n-title="treasurewt-title" title="Total weight of treasures. Automatically calculted based on the weight of each item in the treasure list. Can be overriden." />
|
|
</div>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="0-75-lbs">0-75 lbs</span>:<span data-i18n="4-sqrs">4 sqrs</span>
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="76-100-lbs">76-100 lbs</span>:<span data-i18n="3-sqrs">3 sqrs</span>
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="101-150-lbs">101-150 lbs</span>:<span data-i18n="2-sqrs">2 sqrs</span>
|
|
<span class="sheet-lib2 sheet-wid80" data-i18n="151-300-lbs">151-300 lbs</span>:<span data-i18n="1-sqr">1 sqr</span>
|
|
</div> <!-- END MOVEMENT -->
|
|
</div>
|
|
</div>
|
|
</div> <!-- END LINE 3 -->
|
|
<div class="sheet-ligne"> <!-- LINE 4 -->
|
|
<div class="sheet-mycol"> <!-- COL1 Weapons & Magig -->
|
|
<div class="sheet-ligne">
|
|
<div class="sheet-mycol sheet-bord" style="width:468px;"> <!-- WEAPONS -->
|
|
<span class="sheet-libred" data-i18n="weapons">Weapons</span>
|
|
<fieldset class="repeating_weapons">
|
|
<div class="sheet-ligne">
|
|
<input type="text" name="attr_wpnname" value="" class="sheet-longinput sheet-bold" data-i18n-placeholder="weapon-name" placeholder="Weapon name" />
|
|
<button type="roll" name="RollAttack" data-i18n-title="roll-attack" title="Roll attack (to hit and damage rolls)" value="&{template:tmpl} {{pc=@{character_name}}} {{name=@{wpnname}}} {{attack=1}} {{roll=[[@{wpnhit}]]}} {{dmg=[[@{wpndmg}]]}}"></button>
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="hit-roll">Hit Roll</span>
|
|
<input type="text" class="sheet-shortinput" name="attr_wpnhit" class="sheet-shortinput" value="1d20+0" />
|
|
<span class="sheet-lib2 sheet-wid50" data-i18n="dmg-roll">Dmg Roll</span>
|
|
<input type="text" class="sheet-shortinput" name="attr_wpndmg" class="sheet-shortinput" value="1d6+0" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div><!-- END WEAPONS -->
|
|
<div class="sheet-ligne"> <!-- ABILITIES/MAGIC -->
|
|
<div class="sheet-mycol sheet-bord" style="width:468px;">
|
|
<span class="sheet-libred" data-i18n="abilities">Abilities</span><span class="sheet-libred"> & </span><span class="sheet-libred" data-i18n="magic">Magic</span>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-lib2" data-i18n="number-of-spells-by-level">Number of Spells by Level</span>
|
|
<div class="sheet-ligne">
|
|
<span class="sheet-libmin1">1:</span><input type="number" name="attr_lvl1spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">2:</span><input type="number" name="attr_lvl2spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">3:</span><input type="number" name="attr_lvl3spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">4:</span><input type="number" name="attr_lvl4spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">5:</span><input type="number" name="attr_lvl5spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">6:</span><input type="number" name="attr_lvl6spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">7:</span><input type="number" name="attr_lvl7spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">8:</span><input type="number" name="attr_lvl8spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">9:</span><input type="number" name="attr_lvl9spells" value="0" class="sheet-tinyinput" />
|
|
<span class="sheet-libmin1">10:</span><input type="number" name="attr_lvl10spells" value="0" class="sheet-tinyinput" />
|
|
</div>
|
|
</div>
|
|
<span class="sheet-lib2" data-i18n="spell">Spell</span>/ <span class="sheet-lib2" data-i18n="ability-names">Ability Names</span>
|
|
<fieldset class="repeating_magic">
|
|
<div class="sheet-ligne">
|
|
<input type=checkbox name="attr_magicused" />
|
|
<input type="text" name="attr_magicname" style="width: 290px;" data-i18n-placeholder="spell-or-ability-name" placeholder="Spell or Ability name" />
|
|
<button type="roll" name="RollMagic" data-i18n-title="roll-magic" title="Roll (ex: 2d4)" value="&{template:tmpl} {{pc=@{character_name}}} {{name=@{magicname}}} {{talent=1}} {{roll=[[@{magicroll}]]}} {{target=[[0]]}}"></button>
|
|
<input type="text" name="attr_magicroll" class="sheet-medinput" data-i18n-placeholder="roll-magic" placeholder="Roll (ex:1d100)" />
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div> <!-- END ABILITIES/MAGIC -->
|
|
</div> <!-- END COL1 Weapons & Magig -->
|
|
<div class="sheet-mycol sheet-greybg" style="width: 388px;"> <!-- COL2 EQUIPEMENT -->
|
|
<div class="sheet-lib">
|
|
<span class="sheet-libred" data-i18n="treasure">Treasure</span>/<span class="sheet-libred" data-i18n="key-items">Key Items</span>
|
|
</div>
|
|
<div class="sheet-lib">
|
|
<span class="sheet-lib2" data-i18n="total-wealth-in-gp">Total Wealth in GP</span>: <input type="text" name="attr_totalwealth" />
|
|
</div>
|
|
<span class="sheet-lib2l" style="width: 250px;" data-i18n="name">Name</span>
|
|
<span class="sheet-lib2l" style="width: 50px;" data-i18n="value">Value</span>
|
|
<span class="sheet-lib2l" data-i18n="wt">Wt</span>
|
|
<fieldset class="repeating_treasure">
|
|
<input type="text" name="attr_treasurename" style="width: 250px;" data-i18n-placeholder="item-name" placeholder="Item name" />
|
|
<input type="number" name="attr_treasurevalue" value="0" />
|
|
<input type="number" name="attr_treasurewt" value="0" />
|
|
</fieldset>
|
|
<div class="sheet-lib">
|
|
<span class="sheet-libred" data-i18n="gear">Gear</span>/<span class="sheet-libred" data-i18n="equipment">Equipment</span>
|
|
</div>
|
|
<span class="sheet-lib2l" style="width: 250px;" data-i18n="name">Name</span>
|
|
<span class="sheet-lib2l" style="width: 50px;" data-i18n="qty">Qty</span>
|
|
<span class="sheet-lib2l" style="" data-i18n="wt">Wt</span>
|
|
<fieldset class="repeating_gear">
|
|
<input type="text" name="attr_gearname" style="width: 250px;" data-i18n-placeholder="item-name" placeholder="Item name" />
|
|
<input type="number" name="attr_gearqty" value="1" />
|
|
<input type="number" name="attr_gearwt" value="0" />
|
|
</fieldset>
|
|
</div> <!-- END COL2 EQUIPEMENT -->
|
|
</div> <!-- END LINE 4 -->
|
|
</div> <!-- === END SHEET === -->
|
|
<!-- === TEMPLATE === -->
|
|
<rolltemplate class="sheet-rolltemplate-tmpl">
|
|
<div class="sheet-tplmain">
|
|
<div class="sheet-pc">{{pc}}</div>
|
|
{{#save}}
|
|
<div class="sheet-jet">{{roll}} >= {{target}}</div>
|
|
<div class="sheet-jet sheet-jetbordleft">
|
|
{{#rollGreater() roll target}}
|
|
<span class="sheet-success" data-i18n="success">Success</span>
|
|
{{/rollGreater() roll target}}
|
|
{{#rollTotal() roll target}}
|
|
<span class="sheet-success" data-i18n="success">Success</span>
|
|
{{/rollTotal() roll target}}
|
|
{{#rollLess() roll target}}
|
|
<span class="sheet-failure" data-i18n="failure">Failure</span>
|
|
{{/rollLess() roll target}}
|
|
</div>
|
|
<div class="sheet-jetnom"><span data-i18n="saving-throw">Saving Throw</span> {{#name}}({{name}}){{/name}}</div>
|
|
{{/save}}
|
|
{{#talent}}
|
|
{{#target}}
|
|
{{#rollTotal() target 0}}
|
|
<div class="sheet-jet">{{roll}}</div>
|
|
<div class="sheet-jet"> </div>
|
|
{{/rollTotal() target 0}}
|
|
{{#rollGreater() target 0}}
|
|
<div class="sheet-jet">{{roll}} <= {{target}}</div>
|
|
<div class="sheet-jet sheet-jetbordleft">
|
|
{{#rollGreater() roll target}}
|
|
<span class="sheet-failure" data-i18n="failure">Failure</span>
|
|
{{/rollGreater() roll target}}
|
|
{{#rollTotal() roll target}}
|
|
<span class="sheet-success" data-i18n="success">Success</span>
|
|
{{/rollTotal() roll target}}
|
|
{{#rollLess() roll target}}
|
|
<span class="sheet-success" data-i18n="success">Success</span>
|
|
{{/rollLess() roll target}}
|
|
</div>
|
|
{{/rollGreater() target 0}}
|
|
{{/target}}
|
|
<div class="sheet-jetnom">{{name}}</div>
|
|
{{/talent}}
|
|
{{#attack}}
|
|
<div class="sheet-jet"><span data-i18n="to-hit">To-Hit</span> {{roll}}</div>
|
|
<div class="sheet-jet sheet-jetbordleft"><span data-i18n="damage">Damage</span>
|
|
{{#rollLess() dmg 1}}
|
|
1
|
|
{{/rollLess() dmg 1}}
|
|
{{#rollGreater() dmg 0}}
|
|
{{dmg}}
|
|
{{/rollGreater() dmg 0}}
|
|
</div>
|
|
<div class="sheet-jetnom">{{name}}</div>
|
|
{{/attack}}
|
|
{{#hd}}
|
|
<div class="sheet-jet">{{roll}}</div>
|
|
<div class="sheet-jet"> </div>
|
|
<div class="sheet-jetnom"><span data-i18n="hit-points">Hit Points</span></div>
|
|
{{/hd}}
|
|
</div>
|
|
</rolltemplate>
|