|
|
|
@@ -1,7 +1,7 @@
|
|
|
|
|
|
|
|
|
|
<script type="text/worker">
|
|
|
|
|
const sheetVersionPrefix = 'Official Savage Worlds v';
|
|
|
|
|
const sheetVersion = '1.00.26';
|
|
|
|
|
const sheetVersion = '1.00.27';
|
|
|
|
|
|
|
|
|
|
// Define colors for Logs
|
|
|
|
|
const r20color = '#E948C9';
|
|
|
|
@@ -198,6 +198,7 @@ function repeatingSimpleSumWCheck(
|
|
|
|
|
function fauxChange(field, fauxvalue) {
|
|
|
|
|
//repeating fields should be passed in the format: repeating_<section>:attributes
|
|
|
|
|
//example: repeating_skills:skillnamerank
|
|
|
|
|
log("FauxChange Reached: Field",field,r20color);
|
|
|
|
|
log('Setting faux value(s) for', field, 'orangered');
|
|
|
|
|
if (field.indexOf(':') > -1) {
|
|
|
|
|
//console.log("Need to update values in a repeating section");
|
|
|
|
@@ -222,6 +223,7 @@ function fauxChange(field, fauxvalue) {
|
|
|
|
|
}
|
|
|
|
|
log('Step', '!!! Setting Fake Value !!!', 'orangered');
|
|
|
|
|
setAttrs(sattrs);
|
|
|
|
|
// I think I need to move all this stuff inside the setAttrs above...
|
|
|
|
|
for (let c = 0; c < idArray.length; c++) {
|
|
|
|
|
log(
|
|
|
|
|
'Added Field',
|
|
|
|
@@ -243,11 +245,12 @@ function fauxChange(field, fauxvalue) {
|
|
|
|
|
//console.log(`++++ Setting ${field} to ${fauxvalue} ++++`);
|
|
|
|
|
//console.log("Setting " + field + " to " + fauxvalue);
|
|
|
|
|
sattrs[field] = fauxvalue;
|
|
|
|
|
setAttrs(sattrs);
|
|
|
|
|
//console.log(`---- Setting ${field} to ${prevValue} ----`);
|
|
|
|
|
//console.log("Setting " + field + " to " + fauxvalue);
|
|
|
|
|
sattrs[field] = prevValue;
|
|
|
|
|
setAttrs(sattrs);
|
|
|
|
|
log(`Setting Faux Value (${field})`, fauxvalue,r20color);
|
|
|
|
|
setAttrs(sattrs,null,()=>{
|
|
|
|
|
sattrs[field] = prevValue;
|
|
|
|
|
log(`Setting Previous Value (${field})`, prevValue, r20color);
|
|
|
|
|
setAttrs(sattrs);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@@ -507,10 +510,22 @@ const upgradeSheet = function (
|
|
|
|
|
stepwiseFaux('weapons', 'weaponskill');
|
|
|
|
|
stepwiseFaux('spells', 'spellskill');
|
|
|
|
|
setattrvals['newcontent'] = 'unread';
|
|
|
|
|
}
|
|
|
|
|
if (versionthree < 0.26) {
|
|
|
|
|
setattrvals['newcontent'] = 'unread';
|
|
|
|
|
}
|
|
|
|
|
if (versionthree < 0.27) {
|
|
|
|
|
const nameList = ["faith","focus","performance","psionics","spellcasting"];
|
|
|
|
|
nameList.forEach(skillName => {
|
|
|
|
|
fauxChange(`${skillName}name`, `${skillName}_old`);
|
|
|
|
|
});
|
|
|
|
|
setattrvals['newcontent'] = 'unread';
|
|
|
|
|
setattrvals['newdocumentation'] = 'unread';
|
|
|
|
|
} else {
|
|
|
|
|
log('Upgrade', `Sheet already updgraded (${characterName})`, 'lime');
|
|
|
|
|
}
|
|
|
|
|
setAttrs(setattrvals, { silent: true });
|
|
|
|
|
setAttrs(setattrvals);
|
|
|
|
|
//setAttrs(setattrvals, { silent: true });
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
@@ -518,9 +533,10 @@ const upgradeSheet = function (
|
|
|
|
|
|
|
|
|
|
// Adjust CSS for long Character Names
|
|
|
|
|
on(
|
|
|
|
|
'sheet:opened change:character_name change:character_avatar change:character_token',
|
|
|
|
|
'sheet:opened change:character_name change:character_avatar change:character_token change:show_token',
|
|
|
|
|
function () {
|
|
|
|
|
log('Name Change', 'Name was changed', r20color);
|
|
|
|
|
let setValues = {};
|
|
|
|
|
getAttrs(
|
|
|
|
|
['character_name', 'character_avatar', 'character_token'],
|
|
|
|
|
function (v) {
|
|
|
|
@@ -532,13 +548,34 @@ on(
|
|
|
|
|
? (nameclass = 'smallHeader')
|
|
|
|
|
: (nameclass = 'normalHeader');
|
|
|
|
|
log('Name Class', nameclass, r20color);
|
|
|
|
|
log('Character Token', v.character_token, r20color);
|
|
|
|
|
setAttrs({
|
|
|
|
|
setValues['namelength'] = nameclass;
|
|
|
|
|
let avatarURL = v.character_avatar;
|
|
|
|
|
let tokenURL = v.character_token;
|
|
|
|
|
setValues['avatar'] = avatarURL;
|
|
|
|
|
setValues['ctoken'] = tokenURL;
|
|
|
|
|
if (avatarURL.length < 1 && tokenURL.length < 1) {
|
|
|
|
|
//Avatar and Token is empty, so make sure show_token is set to 0
|
|
|
|
|
setValues['show_token'] = '0';
|
|
|
|
|
} else if (tokenURL.length > 0) {
|
|
|
|
|
tokenURL.substring(tokenURL.length - 4, tokenURL.length - 3) !== '.'
|
|
|
|
|
? (tokenURL += '.png')
|
|
|
|
|
: log('URL Has Extension', tokenURL, r20color);
|
|
|
|
|
//use the token image for the rolltemplate
|
|
|
|
|
setValues['roll_template_token'] = '{{token=[x](' + tokenURL + ')}}';
|
|
|
|
|
} else {
|
|
|
|
|
avatarURL.substring(avatarURL.length - 4, avatarURL.length - 3) !==
|
|
|
|
|
'.'
|
|
|
|
|
? (avatarURL += '.png')
|
|
|
|
|
: log('URL Has Extension', avatarURL, r20color);
|
|
|
|
|
setValues['roll_template_token'] = '{{token=[x](' + avatarURL + ')}}';
|
|
|
|
|
}
|
|
|
|
|
/*setAttrs({
|
|
|
|
|
namelength: nameclass,
|
|
|
|
|
avatar: v.character_avatar,
|
|
|
|
|
ctoken: v.character_token,
|
|
|
|
|
roll_template_token: '{{token=[x](' + v.character_token + '.png)}}',
|
|
|
|
|
});
|
|
|
|
|
});*/
|
|
|
|
|
setAttrs(setValues);
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
@@ -3305,14 +3342,28 @@ weaponlist.forEach(weapon => {
|
|
|
|
|
wbutton = 'repeating_raweapons_weaponbutton';
|
|
|
|
|
wskill = 'repeating_raweapons_weaponskill';
|
|
|
|
|
}
|
|
|
|
|
const skillUn = `@{whisperweapon} &{template:roll} {{name=@{character_name} }} {{namelength=@{namelength}}} @{rolltUnskilled} {{skill_roll=&{noerror} [[ @{weaponUnskilledFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{mook=[[1d0+@{wdNum}]]}} {{wild_die=[[ @{weaponUnskilledWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} @{unshakeTemplate} {{trait=^{unskilled}}} {{source=@{weapon}}} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{unskilledencumbrancebutton} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
const skillFi = `@{whisperweapon} &{template:roll} {{namelength=@{namelength}}} {{trait=@{fightingname}}} {{source=@{weapon}}} @{rolltFighting} {{skill_roll=&{noerror} [[ @{weaponFightingFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponFightingWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{setmodsenc} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
const templateCommon = `@{whisperweapon} &{template:roll} {{namelength=@{namelength}}} {{source=@{weapon}}} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{setmodsenc} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
|
|
|
|
|
const skillUn = `${templateCommon} {{name=@{character_name} }} @{rolltUnskilled} {{skill_roll=&{noerror} [[ @{weaponUnskilledFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{mook=[[1d0+@{wdNum}]]}} {{wild_die=[[ @{weaponUnskilledWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{trait=^{unskilled}}} @{unskilledencumbrancebutton}`;
|
|
|
|
|
const skillFi = `${templateCommon} {{trait=@{fightingname}}} @{rolltFighting} {{skill_roll=&{noerror} [[ @{weaponFightingFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponFightingWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
|
|
|
|
|
const skillAt = `@{whisperweapon} &{template:roll} {{namelength=@{namelength}}} {{trait=@{athleticsname}}} {{source=@{weapon}}} @{rolltAthletics} {{skill_roll=&{noerror} [[ @{weaponAthleticsFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponAthleticsWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{setmodsenc} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
const skillAt = `${templateCommon} {{trait=@{athleticsname}}} @{rolltAthletics} {{skill_roll=&{noerror} [[ @{weaponAthleticsFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponAthleticsWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
|
|
|
|
|
const skillSh = `@{whisperweapon} &{template:roll} {{namelength=@{namelength}}} {{trait=@{shootingname}}} {{source=@{weapon}}} @{rolltShooting} {{skill_roll=&{noerror} [[ @{weaponShootingFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponShootingWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}@{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{setmodsenc} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
const skillSh = `${templateCommon} {{trait=@{shootingname}}} @{rolltShooting} {{skill_roll=&{noerror} [[ @{weaponShootingFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponShootingWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}`;
|
|
|
|
|
|
|
|
|
|
const skillWS = `@{whisperweapon} &{template:roll} {{namelength=@{namelength}}} {{trait=@{weirdsciencename}}} {{source=@{weapon}}} @{rolltWeirdScience} {{skill_roll=&{noerror} [[ @{weaponWeirdScienceFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponWeirdScienceWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}@{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~repeating_weapons_tWeapon) }} {{DmgRoll=^{roll-damage}(~repeating_${pa}weapons_dmg) }} @{setmodsenc} @{showtraitmods} @{multiattack} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}`;
|
|
|
|
|
const skillWS = `${templateCommon} {{trait=@{weirdsciencename}}} @{rolltWeirdScience} {{skill_roll=&{noerror} [[ @{weaponWeirdScienceFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponWeirdScienceWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}`;
|
|
|
|
|
// faith
|
|
|
|
|
const skillFa = `${templateCommon} {{trait=@{faithname}}} @{rolltFaith} {{skill_roll=&{noerror} [[ @{weaponfaithFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponfaithWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
// Focus
|
|
|
|
|
const skillFo = `${templateCommon} {{trait=@{focusname}}} @{rolltFocus} {{skill_roll=&{noerror} [[ @{weaponfocusFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponfocusWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
// Performance
|
|
|
|
|
const skillPe = `${templateCommon} {{trait=@{performancename}}} @{rolltPerformance} {{skill_roll=&{noerror} [[ @{weaponperformanceFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponperformanceWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
// Psionics
|
|
|
|
|
const skillPs = `${templateCommon} {{trait=@{psionicsname}}} @{rolltPsionics} {{skill_roll=&{noerror} [[ @{weaponpsionicsFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponpsionicsWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
// Spellcasting
|
|
|
|
|
const skillSp = `${templateCommon} {{trait=@{spellcastingname}}} @{rolltSpellcasting} {{skill_roll=&{noerror} [[ @{weaponspellcastingFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponspellcastingWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
// Spirit
|
|
|
|
|
const skillSpi = `${templateCommon} {{trait=^{spirit}}} @{rolltspirit} {{skill_roll=&{noerror} [[ @{weaponspiritFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}} {{wild_die=[[ @{weaponspiritWildDieFormula} + @{weaponAttackBonus} [@{weaponAttackBonusReason}] ]]}}`;
|
|
|
|
|
|
|
|
|
|
console.log(eventInfo.sourceAttribute);
|
|
|
|
|
let sid = eventInfo.sourceAttribute.slice(18, 38);
|
|
|
|
@@ -3342,6 +3393,24 @@ weaponlist.forEach(weapon => {
|
|
|
|
|
case 'weirdscience':
|
|
|
|
|
skillToUse = skillWS;
|
|
|
|
|
break;
|
|
|
|
|
case 'faith':
|
|
|
|
|
skillToUse = skillFa;
|
|
|
|
|
break;
|
|
|
|
|
case 'performance':
|
|
|
|
|
skillToUse = skillPe;
|
|
|
|
|
break;
|
|
|
|
|
case 'psionics':
|
|
|
|
|
skillToUse = skillPs;
|
|
|
|
|
break;
|
|
|
|
|
case 'spellcasting':
|
|
|
|
|
skillToUse = skillSp;
|
|
|
|
|
break;
|
|
|
|
|
case 'spirit':
|
|
|
|
|
skillToUse = skillSpi;
|
|
|
|
|
break;
|
|
|
|
|
case 'focus':
|
|
|
|
|
skillToUse = skillFo;
|
|
|
|
|
break;
|
|
|
|
|
case 'unskilled':
|
|
|
|
|
skillToUse = skillUn;
|
|
|
|
|
break;
|
|
|
|
@@ -4261,10 +4330,10 @@ function setSkillDropdown(section, field, value, rowid) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const weaponsskilllist = ['fighting', 'athletics', 'shooting', 'weirdscience'];
|
|
|
|
|
const weaponsskilllist = ['fighting', 'athletics', 'shooting', 'weirdscience','faith','focus','performance','psionics','spellcasting'];
|
|
|
|
|
weaponsskilllist.forEach(weaponsskill => {
|
|
|
|
|
on(`change:${weaponsskill}name`, function (eventInfo) {
|
|
|
|
|
console.log('Triggering Attribute: ' + eventInfo.sourceAttribute);
|
|
|
|
|
log('Weapon Skill List', 'Skill Name Change', 'lime');
|
|
|
|
|
let field = 'r' + eventInfo.sourceAttribute;
|
|
|
|
|
let value = eventInfo.newValue;
|
|
|
|
|
setSkillDropdown('weapons', field, value);
|
|
|
|
@@ -4297,6 +4366,11 @@ const weaponsskillnamelist = [
|
|
|
|
|
'athleticsname',
|
|
|
|
|
'shootingname',
|
|
|
|
|
'weirdsciencename',
|
|
|
|
|
'faithname',
|
|
|
|
|
'focusname',
|
|
|
|
|
'performancename',
|
|
|
|
|
'psionicsname',
|
|
|
|
|
'spellcastingname'
|
|
|
|
|
]; // Considering a refactor here
|
|
|
|
|
const spellskillnamelist = [
|
|
|
|
|
'faithname',
|
|
|
|
@@ -6494,7 +6568,7 @@ on(
|
|
|
|
|
</script>
|
|
|
|
|
<!-- Necessary Mixins-->
|
|
|
|
|
<!-- Hidden inputs for character sheet versioning, etc-->
|
|
|
|
|
<input type="hidden" name="attr_character_sheet" value="Official Savage Worlds v1.00.25"/>
|
|
|
|
|
<input type="hidden" name="attr_character_sheet" value="Official Savage Worlds v1.00.27"/>
|
|
|
|
|
<input type="hidden" name="attr_firstInit" value="0"/>
|
|
|
|
|
<input type="hidden" name="attr_namelength" value="0"/>
|
|
|
|
|
<input type="hidden" name="attr_wdNum" value="1"/>
|
|
|
|
@@ -6825,6 +6899,10 @@ on(
|
|
|
|
|
</div>
|
|
|
|
|
<div class="skillsCondensed">
|
|
|
|
|
<h3 class="groupHeading" data-i18n="skills">Skills</h3>
|
|
|
|
|
<!--Unskilled-->
|
|
|
|
|
<!--Button for Statblock view--><span class="unskilled condensedSkill">
|
|
|
|
|
<button class="traitbutton miniButton" type="roll" name="roll_tUnskilledRoll" title="@{tUnskilledRoll}" value="@{unskilledRollValue} {{skill_roll=[[ @{unskilledSkillRollFormula} ]]}} {{wild_die=[[ @{unskilledWildDieFormula} ]]}}"> <span data-i18n="unskilled-d4-2">Unskilled (d4-2)</span>
|
|
|
|
|
</button></span>
|
|
|
|
|
<!--static skill list-->
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticacademics" type="checkbox" name="attr_staticacademics"/>
|
|
|
|
@@ -7854,27 +7932,83 @@ on(
|
|
|
|
|
<label class="configlabels" data-i18n="skill">Skill</label>
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="child">
|
|
|
|
|
<label class="ddmenu">
|
|
|
|
|
<input class="select-radio fighting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting" checked="checked"/> <span name="attr_rfightingname"> </span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu athletics">
|
|
|
|
|
<input class="select-radio athletics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics"/> <span name="attr_rathleticsname"> </span>
|
|
|
|
|
<input class="select-radio athletics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics"/> <span name="attr_rathleticsname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu faith">
|
|
|
|
|
<input class="select-radio faith" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="faith"/> <span name="attr_rfaithname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu fighting">
|
|
|
|
|
<input class="select-radio fighting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting"/> <span name="attr_rfightingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu focus">
|
|
|
|
|
<input class="select-radio focus" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="focus"/> <span name="attr_rfocusname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu performance">
|
|
|
|
|
<input class="select-radio performance" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="performance"/> <span name="attr_rperformancename"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu psionics">
|
|
|
|
|
<input class="select-radio psionics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="psionics"/> <span name="attr_rpsionicsname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu shooting">
|
|
|
|
|
<input class="select-radio shooting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting"/> <span name="attr_rshootingname"> </span>
|
|
|
|
|
<input class="select-radio shooting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting"/> <span name="attr_rshootingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu">
|
|
|
|
|
<input class="select-radio unskilled" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="unskilled"/> <span data-i18n="unskilled">Unskilled</span>
|
|
|
|
|
<label class="ddmenu spellcasting">
|
|
|
|
|
<input class="select-radio spellcasting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="spellcasting"/> <span name="attr_rspellcastingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu weirdscience">
|
|
|
|
|
<input class="select-radio weirdscience" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience"/> <span name="attr_rweirdsciencename"> </span>
|
|
|
|
|
<input class="select-radio weirdscience" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience"/> <span name="attr_rweirdsciencename"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<!--
|
|
|
|
|
label(class="ddmenu")
|
|
|
|
|
input(type="radio" class="select-radio fighting" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting" checked="checked")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rfightingname')
|
|
|
|
|
label(class="ddmenu athletics")
|
|
|
|
|
input(type="radio" class="select-radio athletics" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rathleticsname')
|
|
|
|
|
label(class="ddmenu shooting")
|
|
|
|
|
input(type="radio" class="select-radio shooting" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rshootingname')
|
|
|
|
|
label(class="ddmenu")
|
|
|
|
|
input(type="radio" class="select-radio unskilled" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="unskilled")
|
|
|
|
|
|
|
|
|
|
|
span(data-i18n='unskilled') Unskilled
|
|
|
|
|
label(class="ddmenu weirdscience")
|
|
|
|
|
input(type="radio" class="select-radio weirdscience" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rweirdsciencename')
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
<!--Manually add the stuff for Spirit, because it doesn't follow the pattern...-->
|
|
|
|
|
<label class="ddmenu spirit">
|
|
|
|
|
<input class="select-radio spirit" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="spirit"/> <span data-i18n="spirit">Spirit</span>
|
|
|
|
|
</label>
|
|
|
|
|
<input class="select-radio" type="hidden" name="attr_weaponskill" value="fighting"/>
|
|
|
|
|
<div class="fighting"><span name="attr_rfightingname"> </span></div>
|
|
|
|
|
<div class="athletics"><span name="attr_rathleticsname"> </span></div>
|
|
|
|
|
<div class="shooting"><span name="attr_rshootingname"> </span></div>
|
|
|
|
|
<div class="unskilled"><span data-i18n="unskilled">Unskilled</span></div>
|
|
|
|
|
<div class="weirdscience"><span name="attr_rweirdsciencename"> </span></div>
|
|
|
|
|
<div class="athletics"><span name="attr_rathleticsname"></span></div>
|
|
|
|
|
<div class="faith"><span name="attr_rfaithname"></span></div>
|
|
|
|
|
<div class="fighting"><span name="attr_rfightingname"></span></div>
|
|
|
|
|
<div class="focus"><span name="attr_rfocusname"></span></div>
|
|
|
|
|
<div class="performance"><span name="attr_rperformancename"></span></div>
|
|
|
|
|
<div class="psionics"><span name="attr_rpsionicsname"></span></div>
|
|
|
|
|
<div class="shooting"><span name="attr_rshootingname"></span></div>
|
|
|
|
|
<div class="spellcasting"><span name="attr_rspellcastingname"></span></div>
|
|
|
|
|
<div class="weirdscience"><span name="attr_rweirdsciencename"></span></div>
|
|
|
|
|
<div class="spirit"><span data-i18n="spirit">Spirit</span></div>
|
|
|
|
|
<!--
|
|
|
|
|
div(class="fighting")
|
|
|
|
|
span(name='attr_rfightingname')
|
|
|
|
|
div(class="athletics")
|
|
|
|
|
span(name='attr_rathleticsname')
|
|
|
|
|
div(class="shooting")
|
|
|
|
|
span(name='attr_rshootingname')
|
|
|
|
|
div(class="unskilled")
|
|
|
|
|
span(data-i18n='unskilled') Unskilled
|
|
|
|
|
div(class="weirdscience")
|
|
|
|
|
span(name='attr_rweirdsciencename')
|
|
|
|
|
-->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<label class="configlabels" data-i18n="skill-modifier">Skill Modifier</label>(
|
|
|
|
@@ -7922,14 +8056,36 @@ on(
|
|
|
|
|
<!-- Skill Formulae-->
|
|
|
|
|
<input type="hidden" name="attr_weaponUnskilledFormula" value="@{unskilledSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponUnskilledWildDieFormula" value="@{unskilledWildDieFormula}"/>
|
|
|
|
|
<!-- Fighting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponFightingFormula" value="@{fightingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponFightingWildDieFormula" value="@{fightingWildDieFormula}"/>
|
|
|
|
|
<!-- Athletics-->
|
|
|
|
|
<input type="hidden" name="attr_weaponAthleticsFormula" value="@{athleticsSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponAthleticsWildDieFormula" value="@{athleticsWildDieFormula}"/>
|
|
|
|
|
<!-- Shooting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponShootingFormula" value="@{shootingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponShootingWildDieFormula" value="@{shootingWildDieFormula}"/>
|
|
|
|
|
<!-- Weird Science-->
|
|
|
|
|
<input type="hidden" name="attr_weaponWeirdScienceFormula" value="@{weirdscienceSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponWeirdScienceWildDieFormula" value="@{weirdscienceWildDieFormula}"/>
|
|
|
|
|
<!-- Faith-->
|
|
|
|
|
<input type="hidden" name="attr_weaponfaithFormula" value="@{faithSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponfaithWildDieFormula" value="@{faithWildDieFormula}"/>
|
|
|
|
|
<!-- Focus-->
|
|
|
|
|
<input type="hidden" name="attr_weaponfocusFormula" value="@{focusSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponfocusWildDieFormula" value="@{focusWildDieFormula}"/>
|
|
|
|
|
<!-- Performance-->
|
|
|
|
|
<input type="hidden" name="attr_weaponperformanceFormula" value="@{performanceSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponperformanceWildDieFormula" value="@{performanceWildDieFormula}"/>
|
|
|
|
|
<!-- Psionics-->
|
|
|
|
|
<input type="hidden" name="attr_weaponpsionicsFormula" value="@{psionicsSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponpsionicsWildDieFormula" value="@{psionicsWildDieFormula}"/>
|
|
|
|
|
<!-- Spellcasting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponspellcastingFormula" value="@{spellcastingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponspellcastingWildDieFormula" value="@{spellcastingWildDieFormula}"/>
|
|
|
|
|
<!-- Spirit-->
|
|
|
|
|
<input type="hidden" name="attr_weaponspiritFormula" value="@{spiritRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponspiritWildDieFormula" value="@{spiritWildDieFormula}"/>
|
|
|
|
|
<!-- Hidden Fields for the roll button(s), etc-->
|
|
|
|
|
<input type="hidden" name="attr_weaponroll" value="@{damageOnly}"/>
|
|
|
|
|
<!-- Used for Skill and Damage roll-->
|
|
|
|
@@ -8151,7 +8307,7 @@ on(
|
|
|
|
|
</fieldset>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="logoBlock">
|
|
|
|
|
<input class="showLogo" type="hidden" value="SavageWorlds" name="attr_logo"/><img class="logo PEG" src="https://raw.githubusercontent.com/finderski/SWT/master/PEG_LOGO_White.png"/><img class="logo Deadlands" src="http://www.geeksville.us/roll20/Deadlands.png"/><img class="logo SWADE" src="http://www.geeksville.us/roll20/SW_Logo_AE.png"/><img class="logo SWPF" src="https://raw.githubusercontent.com/finderski/SWT/master/SWAD%20Update%20Images/PFforSW_logo9_square_smaller.png"/><img class="logo Rifts" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Savage_Rifts_Logo.png"/>
|
|
|
|
|
<input class="showLogo" type="hidden" value="SavageWorlds" name="attr_logo"/><img class="logo PEG" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/PEG_LOGO_White.png"/><img class="logo Deadlands" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Deadlands.png"/><img class="logo SWADE" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/SW_Logo_AE.png"/><img class="logo SWPF" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/PFforSW_logo9_square_smaller.png"/><img class="logo Rifts" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Savage_Rifts_Logo.png"/>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="character">
|
|
|
|
@@ -8449,8 +8605,7 @@ on(
|
|
|
|
|
</label></span><span class="skillItem" data-i18n-list-item="core-skills">
|
|
|
|
|
<label class="SkillListLabel">
|
|
|
|
|
<input class="StaticSkill" type="checkbox" name="attr_staticCore" value="1"/><span> </span><span class="boldMaroon" data-i18n="core-skills">Core Skills</span>
|
|
|
|
|
</label></span>
|
|
|
|
|
<!-- each skill in skillNamesList--><span class="skillItem" data-i18n-list-item="academics">
|
|
|
|
|
</label></span><span class="skillItem" data-i18n-list-item="academics">
|
|
|
|
|
<label class="SkillListLabel">
|
|
|
|
|
<!-- input(type="checkbox", class="StaticSkill", name=`attr_static${skill}`)-->
|
|
|
|
|
<input class="StaticSkill staticacademics" type="checkbox" name="attr_staticacademics"/><span> </span><span name="attr_academicsname"></span>
|
|
|
|
@@ -8593,7 +8748,8 @@ on(
|
|
|
|
|
<div class="selected-skills" data-i18n-list="character-skills">
|
|
|
|
|
<!-- unskilled-->
|
|
|
|
|
<div class="basetrait" data-i18n-list-item="unskilled">
|
|
|
|
|
<button class="unskilledbutton traitflexattbutton" type="roll" name="roll_tUnskilledRoll" title="@{tUnskilledRoll}" value="@{whisperunskilled} &{template:roll} {{namelength=@{namelength}}} @{rolltUnskilled} {{skill_roll=[[ @{unskilledSkillRollFormula} ]]}} {{wild_die=[[ @{unskilledWildDieFormula} ]]}} @{unskilledencumbrancebutton} @{showtraitmods} {{conviction=[[ [[@{conviction}]]d6! ]] }} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~tUnskilledRoll)}} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}"> <span data-i18n="unskilled-d4-2">Unskilled (d4-2)</span></button><span class="unskilledOptions">
|
|
|
|
|
<!-- button(type="roll", class="unskilledbutton traitflexattbutton", name="roll_tUnskilledRoll", title="@{tUnskilledRoll}", value="@{whisperunskilled} &{template:roll} {{namelength=@{namelength}}} @{rolltUnskilled} {{skill_roll=[[ @{unskilledSkillRollFormula} ]]}} {{wild_die=[[ @{unskilledWildDieFormula} ]]}} @{unskilledencumbrancebutton} @{showtraitmods} {{conviction=[[ [[@{conviction}]]d6! ]] }} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~tUnskilledRoll)}} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}") -->
|
|
|
|
|
<button class="unskilledbutton traitflexattbutton" type="roll" name="roll_tUnskilledRoll" title="@{tUnskilledRoll}" value="@{unskilledRollValue} {{skill_roll=[[ @{unskilledSkillRollFormula} ]]}} {{wild_die=[[ @{unskilledWildDieFormula} ]]}}"> <span data-i18n="unskilled-d4-2">Unskilled (d4-2)</span></button><span class="unskilledOptions">
|
|
|
|
|
<label class="traitlabel" data-i18n-title="apply-encumbrance">
|
|
|
|
|
<input class="traitradio" type="checkbox" name="attr_unskilledencumbrance" title="@{unskilledencumbrance}" value="1"/><span class="joat">O</span>
|
|
|
|
|
</label></span>
|
|
|
|
@@ -8612,6 +8768,7 @@ on(
|
|
|
|
|
<input class="wildDieDesc" type="text" name="attr_unskilledwilddieinfo" placeholder="Standard Wild Die die type" data-i18n-placeholder="no-modifying-edges"/>
|
|
|
|
|
</div>
|
|
|
|
|
</details>
|
|
|
|
|
<input type="hidden" name="attr_unskilledRollValue" value="@{whisperunskilled} &{template:roll} {{namelength=@{namelength}}} @{rolltUnskilled} @{unskilledencumbrancebutton} @{showtraitmods} {{conviction=[[ [[@{conviction}]]d6! ]] }} @{unshakeTemplate} {{button=y}} {{ReRoll=^{reroll}(~tUnskilledRoll)}} {{theme=@{rolltemplate_theme}}} {{showToken=[[0d6+@{show_token}]]}} @{roll_template_token}"/>
|
|
|
|
|
<input type="hidden" name="attr_unskilled_rank" value="1d4! -2"/>
|
|
|
|
|
<input type="hidden" name="attr_unskilled_display" value="1d4-2"/>
|
|
|
|
|
<input type="hidden" name="attr_unskilledSkillRollFormula" value="@{unskilled_rank} + @{ModSum}[Wounds, Fatigue, Distracted] + @{traitmods} + [[@{UnskilledEncumbrance}*@{encumbrance}]][Encumbrance Penalty]"/>
|
|
|
|
@@ -12880,7 +13037,7 @@ on(
|
|
|
|
|
img(class="logo Deadlands" src="http://www.geeksville.us/roll20/Deadlands.png")
|
|
|
|
|
img(class="logo SWADE" src="http://www.geeksville.us/roll20/SW_Logo_AE.png")
|
|
|
|
|
-->
|
|
|
|
|
<input class="showLogo" type="hidden" value="SavageWorlds" name="attr_logo"/><img class="logo PEG" src="https://raw.githubusercontent.com/finderski/SWT/master/PEG_LOGO_White.png"/><img class="logo Deadlands" src="http://www.geeksville.us/roll20/Deadlands.png"/><img class="logo SWADE" src="http://www.geeksville.us/roll20/SW_Logo_AE.png"/><img class="logo SWPF" src="https://raw.githubusercontent.com/finderski/SWT/master/SWAD%20Update%20Images/PFforSW_logo9_square_smaller.png"/><img class="logo Rifts" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Savage_Rifts_Logo.png"/>
|
|
|
|
|
<input class="showLogo" type="hidden" value="SavageWorlds" name="attr_logo"/><img class="logo PEG" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/PEG_LOGO_White.png"/><img class="logo Deadlands" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Deadlands.png"/><img class="logo SWADE" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/SW_Logo_AE.png"/><img class="logo SWPF" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/PFforSW_logo9_square_smaller.png"/><img class="logo Rifts" src="https://raw.githubusercontent.com/Roll20/roll20-character-sheets/master/Official%20Savage%20Worlds/images/logos/Savage_Rifts_Logo.png"/>
|
|
|
|
|
<!--Right Column (Hindrances, Ancestry Abilities, Special Abilties, Edges/Advances)-->
|
|
|
|
|
<input class="showconditions hiddenInput" type="checkbox" name="attr_showconditions" checked="checked"/>
|
|
|
|
|
<div class="conditions">
|
|
|
|
@@ -13084,9 +13241,30 @@ on(
|
|
|
|
|
<hr class="weaponItem weapon-hr"/>
|
|
|
|
|
<input type="hidden" name="attr_vbonusdamage" value="1d6"/>
|
|
|
|
|
<input class="vdamage" type="checkbox" name="attr_RaiseHBRule" value="2" checked="checked"/>
|
|
|
|
|
<input class="AthleticsStaticSkill hiddenButton" type="checkbox" name="attr_staticAthletics"/>
|
|
|
|
|
<input class="ShootingStaticSkill hiddenButton" type="checkbox" name="attr_staticShooting"/>
|
|
|
|
|
<input class="WSStaticSkill hiddenButton" type="checkbox" name="attr_staticWeirdScience"/>
|
|
|
|
|
<!--
|
|
|
|
|
input(class="AthleticsStaticSkill hiddenButton" type="checkbox" name="attr_staticAthletics")
|
|
|
|
|
input(class="ShootingStaticSkill hiddenButton" type="checkbox" name="attr_staticShooting")
|
|
|
|
|
input(class="WSStaticSkill hiddenButton" type="checkbox" name="attr_staticWeirdScience")
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticathletics" type="checkbox" name="attr_staticathletics"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticfaith" type="checkbox" name="attr_staticfaith"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticfighting" type="checkbox" name="attr_staticfighting"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticfocus" type="checkbox" name="attr_staticfocus"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticperformance" type="checkbox" name="attr_staticperformance"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticpsionics" type="checkbox" name="attr_staticpsionics"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticshooting" type="checkbox" name="attr_staticshooting"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticspellcasting" type="checkbox" name="attr_staticspellcasting"/>
|
|
|
|
|
<!--do stuff-->
|
|
|
|
|
<input class="hiddenInput staticweirdscience" type="checkbox" name="attr_staticweirdscience"/>
|
|
|
|
|
<input type="hidden" name="attr_vbonusdamage" value="1d6"/>
|
|
|
|
|
<input class="vdamage" type="checkbox" name="attr_RaiseHBRule" value="2" checked="checked"/>
|
|
|
|
|
<fieldset class="repeating_weapons" style="width: 100%;">
|
|
|
|
@@ -13147,27 +13325,83 @@ on(
|
|
|
|
|
<label class="configlabels" data-i18n="skill">Skill</label>
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="child">
|
|
|
|
|
<label class="ddmenu">
|
|
|
|
|
<input class="select-radio fighting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting" checked="checked"/> <span name="attr_rfightingname"> </span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu athletics">
|
|
|
|
|
<input class="select-radio athletics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics"/> <span name="attr_rathleticsname"> </span>
|
|
|
|
|
<input class="select-radio athletics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics"/> <span name="attr_rathleticsname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu faith">
|
|
|
|
|
<input class="select-radio faith" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="faith"/> <span name="attr_rfaithname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu fighting">
|
|
|
|
|
<input class="select-radio fighting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting"/> <span name="attr_rfightingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu focus">
|
|
|
|
|
<input class="select-radio focus" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="focus"/> <span name="attr_rfocusname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu performance">
|
|
|
|
|
<input class="select-radio performance" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="performance"/> <span name="attr_rperformancename"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu psionics">
|
|
|
|
|
<input class="select-radio psionics" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="psionics"/> <span name="attr_rpsionicsname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu shooting">
|
|
|
|
|
<input class="select-radio shooting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting"/> <span name="attr_rshootingname"> </span>
|
|
|
|
|
<input class="select-radio shooting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting"/> <span name="attr_rshootingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu">
|
|
|
|
|
<input class="select-radio unskilled" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="unskilled"/> <span data-i18n="unskilled">Unskilled</span>
|
|
|
|
|
<label class="ddmenu spellcasting">
|
|
|
|
|
<input class="select-radio spellcasting" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="spellcasting"/> <span name="attr_rspellcastingname"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<label class="ddmenu weirdscience">
|
|
|
|
|
<input class="select-radio weirdscience" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience"/> <span name="attr_rweirdsciencename"> </span>
|
|
|
|
|
<input class="select-radio weirdscience" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience"/> <span name="attr_rweirdsciencename"></span>
|
|
|
|
|
</label>
|
|
|
|
|
<!--
|
|
|
|
|
label(class="ddmenu")
|
|
|
|
|
input(type="radio" class="select-radio fighting" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="fighting" checked="checked")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rfightingname')
|
|
|
|
|
label(class="ddmenu athletics")
|
|
|
|
|
input(type="radio" class="select-radio athletics" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="athletics")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rathleticsname')
|
|
|
|
|
label(class="ddmenu shooting")
|
|
|
|
|
input(type="radio" class="select-radio shooting" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="shooting")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rshootingname')
|
|
|
|
|
label(class="ddmenu")
|
|
|
|
|
input(type="radio" class="select-radio unskilled" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="unskilled")
|
|
|
|
|
|
|
|
|
|
|
span(data-i18n='unskilled') Unskilled
|
|
|
|
|
label(class="ddmenu weirdscience")
|
|
|
|
|
input(type="radio" class="select-radio weirdscience" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="weirdscience")
|
|
|
|
|
|
|
|
|
|
|
span(name='attr_rweirdsciencename')
|
|
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
<!--Manually add the stuff for Spirit, because it doesn't follow the pattern...-->
|
|
|
|
|
<label class="ddmenu spirit">
|
|
|
|
|
<input class="select-radio spirit" type="radio" name="attr_weaponskill" title="@{repeating_weapons_$#_weaponskill}" value="spirit"/> <span data-i18n="spirit">Spirit</span>
|
|
|
|
|
</label>
|
|
|
|
|
<input class="select-radio" type="hidden" name="attr_weaponskill" value="fighting"/>
|
|
|
|
|
<div class="fighting"><span name="attr_rfightingname"> </span></div>
|
|
|
|
|
<div class="athletics"><span name="attr_rathleticsname"> </span></div>
|
|
|
|
|
<div class="shooting"><span name="attr_rshootingname"> </span></div>
|
|
|
|
|
<div class="unskilled"><span data-i18n="unskilled">Unskilled</span></div>
|
|
|
|
|
<div class="weirdscience"><span name="attr_rweirdsciencename"> </span></div>
|
|
|
|
|
<div class="athletics"><span name="attr_rathleticsname"></span></div>
|
|
|
|
|
<div class="faith"><span name="attr_rfaithname"></span></div>
|
|
|
|
|
<div class="fighting"><span name="attr_rfightingname"></span></div>
|
|
|
|
|
<div class="focus"><span name="attr_rfocusname"></span></div>
|
|
|
|
|
<div class="performance"><span name="attr_rperformancename"></span></div>
|
|
|
|
|
<div class="psionics"><span name="attr_rpsionicsname"></span></div>
|
|
|
|
|
<div class="shooting"><span name="attr_rshootingname"></span></div>
|
|
|
|
|
<div class="spellcasting"><span name="attr_rspellcastingname"></span></div>
|
|
|
|
|
<div class="weirdscience"><span name="attr_rweirdsciencename"></span></div>
|
|
|
|
|
<div class="spirit"><span data-i18n="spirit">Spirit</span></div>
|
|
|
|
|
<!--
|
|
|
|
|
div(class="fighting")
|
|
|
|
|
span(name='attr_rfightingname')
|
|
|
|
|
div(class="athletics")
|
|
|
|
|
span(name='attr_rathleticsname')
|
|
|
|
|
div(class="shooting")
|
|
|
|
|
span(name='attr_rshootingname')
|
|
|
|
|
div(class="unskilled")
|
|
|
|
|
span(data-i18n='unskilled') Unskilled
|
|
|
|
|
div(class="weirdscience")
|
|
|
|
|
span(name='attr_rweirdsciencename')
|
|
|
|
|
-->
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<label class="configlabels" data-i18n="skill-modifier">Skill Modifier</label>(
|
|
|
|
@@ -13215,14 +13449,36 @@ on(
|
|
|
|
|
<!-- Skill Formulae-->
|
|
|
|
|
<input type="hidden" name="attr_weaponUnskilledFormula" value="@{unskilledSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponUnskilledWildDieFormula" value="@{unskilledWildDieFormula}"/>
|
|
|
|
|
<!-- Fighting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponFightingFormula" value="@{fightingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponFightingWildDieFormula" value="@{fightingWildDieFormula}"/>
|
|
|
|
|
<!-- Athletics-->
|
|
|
|
|
<input type="hidden" name="attr_weaponAthleticsFormula" value="@{athleticsSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponAthleticsWildDieFormula" value="@{athleticsWildDieFormula}"/>
|
|
|
|
|
<!-- Shooting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponShootingFormula" value="@{shootingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponShootingWildDieFormula" value="@{shootingWildDieFormula}"/>
|
|
|
|
|
<!-- Weird Science-->
|
|
|
|
|
<input type="hidden" name="attr_weaponWeirdScienceFormula" value="@{weirdscienceSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponWeirdScienceWildDieFormula" value="@{weirdscienceWildDieFormula}"/>
|
|
|
|
|
<!-- Faith-->
|
|
|
|
|
<input type="hidden" name="attr_weaponfaithFormula" value="@{faithSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponfaithWildDieFormula" value="@{faithWildDieFormula}"/>
|
|
|
|
|
<!-- Focus-->
|
|
|
|
|
<input type="hidden" name="attr_weaponfocusFormula" value="@{focusSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponfocusWildDieFormula" value="@{focusWildDieFormula}"/>
|
|
|
|
|
<!-- Performance-->
|
|
|
|
|
<input type="hidden" name="attr_weaponperformanceFormula" value="@{performanceSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponperformanceWildDieFormula" value="@{performanceWildDieFormula}"/>
|
|
|
|
|
<!-- Psionics-->
|
|
|
|
|
<input type="hidden" name="attr_weaponpsionicsFormula" value="@{psionicsSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponpsionicsWildDieFormula" value="@{psionicsWildDieFormula}"/>
|
|
|
|
|
<!-- Spellcasting-->
|
|
|
|
|
<input type="hidden" name="attr_weaponspellcastingFormula" value="@{spellcastingSkillRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponspellcastingWildDieFormula" value="@{spellcastingWildDieFormula}"/>
|
|
|
|
|
<!-- Spirit-->
|
|
|
|
|
<input type="hidden" name="attr_weaponspiritFormula" value="@{spiritRollFormula}"/>
|
|
|
|
|
<input type="hidden" name="attr_weaponspiritWildDieFormula" value="@{spiritWildDieFormula}"/>
|
|
|
|
|
<!-- Hidden Fields for the roll button(s), etc-->
|
|
|
|
|
<input type="hidden" name="attr_weaponroll" value="@{damageOnly}"/>
|
|
|
|
|
<!-- Used for Skill and Damage roll-->
|
|
|
|
@@ -15582,6 +15838,40 @@ on(
|
|
|
|
|
</div>
|
|
|
|
|
<div class="releasenotesTab">
|
|
|
|
|
<h1 class="groupHeader documentationHeader" data-i18n="release-notes">Release Notes</h1>
|
|
|
|
|
<!-- Release 1.00.27-->
|
|
|
|
|
<label class="rowlabel">
|
|
|
|
|
<input class="releasenotes" type="checkbox" name="attr_releasenotes10027" value="1"/><span class="releasenotesVersion">
|
|
|
|
|
<h4 class="rnversion"><span data-i18n="version"></span>1.00.27</h4></span>
|
|
|
|
|
</label>
|
|
|
|
|
<input class="releasenotes" type="checkbox" style="display:none;" name="attr_releasenotes10027" value="1"/>
|
|
|
|
|
<div class="releasenotes">
|
|
|
|
|
<h2 class="releaseNotesSubHeader" data-i18n="minor-release">Minor Release</h2>
|
|
|
|
|
<p data-i18n="minor-release-info">This release focuses on Minor Enhancements and Bug Fixes</p>
|
|
|
|
|
<h2 class="releaseNotesSubHeader" data-i18n="enhancements">Enhancements</h2>
|
|
|
|
|
<ul class="releaseNotesList">
|
|
|
|
|
<li><span class="black" data-i18n="add-artificer-support">Added support for the Artificer Edge and Arcane Devices; sometimes the user needs to use the Caster's arcane skill, it is now possible to designate an Arcane skill for a weapon. The skill must be checked and configured properly for it to show up in the list of options. Because the user may be using another character's Arcane skill, it's recommended that you add that skill and configure it as temporarily boosted to get the appropriate rank. </span></li>
|
|
|
|
|
</ul>
|
|
|
|
|
<h2 class="releaseNotesSubHeader" data-i18n="bugs-fixed">Bugs Fixed</h2>
|
|
|
|
|
<ul class="releaseNotesList">
|
|
|
|
|
<li> <span class="black" data-i18n="hide-arcane-skills-in-weapons">Fixed an issue where the arcane skill (Weird Science) wasn't hidden if the user didn't have Weird Science.</span></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- Release 1.00.26-->
|
|
|
|
|
<label class="rowlabel">
|
|
|
|
|
<input class="releasenotes" type="checkbox" name="attr_releasenotes10026" value="1"/><span class="releasenotesVersion">
|
|
|
|
|
<h4 class="rnversion"><span data-i18n="version"></span>1.00.26</h4></span>
|
|
|
|
|
</label>
|
|
|
|
|
<input class="releasenotes" type="checkbox" style="display:none;" name="attr_releasenotes10026" value="1"/>
|
|
|
|
|
<div class="releasenotes">
|
|
|
|
|
<h2 class="releaseNotesSubHeader" data-i18n="bug-fix-release">Bug Fix Release</h2>
|
|
|
|
|
<p data-i18n="bug-fix-release-info">This release focuses on Bug Fixes</p>
|
|
|
|
|
<h2 class="releaseNotesSubHeader" data-i18n="bugs-fixed">Bugs Fixed</h2>
|
|
|
|
|
<ul class="releaseNotesList">
|
|
|
|
|
<li> <span class="black" data-i18n="statblock-view-skill-spillover">Fixed an issue where the if one had a lot of custom skills, it would not wrap properly and the skills (and potentially Hindrances and Special Abilities) would flow off the character sheet.</span></li>
|
|
|
|
|
<li> <span class="black" data-i18n="unskilled-button-on-statblock-view">Fixed an issue where the Unskilled roll button was not present on the Statblock (locked) view of the character sheet.</span></li>
|
|
|
|
|
<li><span class="black" data-i18n="token-in-rolltemplate-not-showing">Fixed an issue where if the character sheet didn't have a token assigned, the roll template would still attempt to show the image. Now, if a token is not assigned, the sheet will look to see if an Avatar is assigned for the character and if so, it will use that; if neither a token nor an avatar are assigned, the sheet will uncheck the setting to display the token on the roll template.</span></li>
|
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- Release 1.00.25-->
|
|
|
|
|
<label class="rowlabel">
|
|
|
|
|
<input class="releasenotes" type="checkbox" name="attr_releasenotes10025" value="1"/><span class="releasenotesVersion">
|
|
|
|
@@ -16382,7 +16672,7 @@ on(
|
|
|
|
|
{{#skill_roll5}}<span class="sheet-rollContainer">{{skill_roll5}}</span>{{/skill_roll5}}
|
|
|
|
|
{{/rollGreater() numrolls 4}}
|
|
|
|
|
{{#rollGreater() numrolls 5}}
|
|
|
|
|
{{#allprops() skill_rank mook showtt showwounds showfatigue showdistracted showenc skill_roll skill_roll2 skill_roll3 skill_roll4 skill_roll5 name trait source PowerTemplate wild_die wild_die2 wild_die3 wild_die4 wild_die5 mods ttmod wounds fatigue distracted encumbrance notes button DmgRoll numrolls wcicon distracteds vulnerable stunned unshake ReRoll vigorStunned unshakeTemplate ap getgritty GrittyRoll skill_rollall trappings bonus_die wci showspec showap wildcard shaken namelength conviction ignoremaxheight}}<span class="sheet-rollContainer">{{value}}</span>{{/allprops() skill_rank mook showtt showwounds showfatigue showdistracted showenc skill_roll skill_roll2 skill_roll3 skill_roll4 skill_roll5 name trait source PowerTemplate wild_die wild_die2 wild_die3 wild_die4 wild_die5 mods ttmod wounds fatigue distracted encumbrance notes button DmgRoll numrolls wcicon distracteds vulnerable stunned unshake ReRoll vigorStunned unshakeTemplate ap getgritty GrittyRoll skill_rollall trappings bonus_die wci showspec showap wildcard shaken namelength conviction ignoremaxheight}}
|
|
|
|
|
{{#allprops() theme skill_rank mook showtt showwounds showfatigue showdistracted showenc skill_roll skill_roll2 skill_roll3 skill_roll4 skill_roll5 name trait source PowerTemplate wild_die wild_die2 wild_die3 wild_die4 wild_die5 mods ttmod wounds fatigue distracted encumbrance notes button DmgRoll numrolls wcicon distracteds vulnerable stunned unshake ReRoll vigorStunned unshakeTemplate ap getgritty GrittyRoll skill_rollall trappings bonus_die wci showspec showap wildcard shaken namelength conviction ignoremaxheight}}<span class="sheet-rollContainer">{{value}}</span>{{/allprops() theme skill_rank mook showtt showwounds showfatigue showdistracted showenc skill_roll skill_roll2 skill_roll3 skill_roll4 skill_roll5 name trait source PowerTemplate wild_die wild_die2 wild_die3 wild_die4 wild_die5 mods ttmod wounds fatigue distracted encumbrance notes button DmgRoll numrolls wcicon distracteds vulnerable stunned unshake ReRoll vigorStunned unshakeTemplate ap getgritty GrittyRoll skill_rollall trappings bonus_die wci showspec showap wildcard shaken namelength conviction ignoremaxheight}}
|
|
|
|
|
{{/rollGreater() numrolls 5}}
|
|
|
|
|
</div>
|
|
|
|
|
<div class="sheet-templateRoll sheet-trollRight">
|
|
|
|
@@ -16524,7 +16814,7 @@ on(
|
|
|
|
|
{{/rollGreater() computed::lastcallroll 0}}
|
|
|
|
|
{{/burnroll}}
|
|
|
|
|
{{#buttonstyle}}<div class="sheet-buttonstyle">{{/buttonstyle}}
|
|
|
|
|
{{#allprops() description item type wildcard fear heartattack ignoremaxheight buttonstyle burnroll lastcallroll lastcalldesc}}<p><strong>{{key}}</strong><span>{{value}}</span></p>{{/allprops() description item type wildcard fear heartattack ignoremaxheight buttonstyle burnroll lastcallroll lastcalldesc}}
|
|
|
|
|
{{#allprops() theme description item type wildcard fear heartattack ignoremaxheight buttonstyle burnroll lastcallroll lastcalldesc}}<p><strong>{{key}}</strong><span>{{value}}</span></p>{{/allprops() theme description item type wildcard fear heartattack ignoremaxheight buttonstyle burnroll lastcallroll lastcalldesc}}
|
|
|
|
|
{{#buttonstyle}}</div>{{/buttonstyle}}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|