mirror of
https://github.com/Nighthawk42/roll20-character-sheets.git
synced 2026-08-30 19:52:29 +00:00
1644 lines
73 KiB
HTML
1644 lines
73 KiB
HTML
<script type="text/worker">
|
|
|
|
// Scripts for first section - description and characteristics
|
|
|
|
// Populating description
|
|
|
|
on("change:hist-options-flag", function() {
|
|
getAttrs(["gender","hand","race","aspect","status","legit","order","height","weight","age","pb"], function(obj) {
|
|
var attrs = {};
|
|
var hand = obj.hand.charAt(0).toUpperCase() + obj.hand.slice(1).toLowerCase();
|
|
var gender = obj.gender.toLowerCase();
|
|
var race = obj.race.toLowerCase();
|
|
attrs["descrip"] = hand + " " + gender + " " + race;
|
|
var height = obj.height;
|
|
var weight = obj.weight;
|
|
var age = obj.age;
|
|
var pb = obj.pb;
|
|
attrs["stat-height"] = "";
|
|
attrs["stat-weight"] = "";
|
|
attrs["stat-age"] = "";
|
|
attrs["stat-pb"] = "";
|
|
if (height != undefined || weight != undefined || age != undefined || pb != undefined){
|
|
if (height != undefined) {
|
|
attrs["stat-height"] = height;
|
|
}
|
|
if (weight != undefined) {
|
|
attrs["stat-weight"] = weight;
|
|
}
|
|
if (age != undefined) {
|
|
attrs["stat-age"] = age + " y.o.";
|
|
}
|
|
if (pb != undefined) {
|
|
attrs["stat-pb"] = "PB: " + pb;
|
|
}
|
|
}
|
|
var order = obj["order"];
|
|
if (order != undefined) { order = "You are your parents' " + order + " child."; }
|
|
else { order = ""; }
|
|
attrs["hsum-aspect"] = obj["aspect"];
|
|
attrs["hsum-status"] = obj["status"];
|
|
attrs["hsum-legit"] = obj["legit"];
|
|
attrs["hsum-order"] = order;
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
|
|
// Calculating IB
|
|
|
|
on("change:agcurr change:pc", function() {
|
|
getAttrs(["agcurr", "pc"], function(obj) {
|
|
setAttrs({
|
|
"ib": (obj.agcurr*1 + obj.pc*1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating TMR
|
|
|
|
on("change:agcurr change:tmrracemod", function() {
|
|
getAttrs(["agcurr", "tmrracemod"], function(v) {
|
|
var tmr = 0;
|
|
var agnum = v.agcurr;
|
|
var racemod = v.tmrracemod;
|
|
if (agnum >= 27) { tmr = 99; }
|
|
else if (agnum >= 26) { tmr = 8; }
|
|
else if (agnum >= 22) { tmr = 7; }
|
|
else if (agnum >= 18) { tmr = 6; }
|
|
else if (agnum >= 13) { tmr = 5; }
|
|
else if (agnum >= 9) { tmr = 4; }
|
|
else if (agnum >= 5) { tmr = 3; }
|
|
else if (agnum >= 3) { tmr = 2; }
|
|
else { tmr = 0; }
|
|
tmr += racemod*1;
|
|
setAttrs({"tmr":tmr});
|
|
});
|
|
});
|
|
|
|
// Calculating MR
|
|
|
|
var updateIsmage = function() {
|
|
getSectionIDs("repeating_college", function(idArray) {
|
|
if(idArray.length == 0) {
|
|
setAttrs({"ismage":0});
|
|
}
|
|
else {
|
|
var mage = 0;
|
|
var collegeIDs = [];
|
|
for (var i=0; i < idArray.length; i++) {
|
|
var idname = idArray[i];
|
|
collegeIDs.push("repeating_college_" + idname + "_college");
|
|
}
|
|
getAttrs(collegeIDs, function(objCollege) {
|
|
_.each(objCollege, function(value, key) {
|
|
if (value!="") { mage = 1; }
|
|
});
|
|
setAttrs({"ismage":mage});
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
on("change:repeating_college:college", function() {
|
|
getAttrs(["repeating_college_college", "ismage"], function(obj) {
|
|
if((obj.ismage=="1") && (obj.repeating_college_college==undefined)) {
|
|
updateIsmage();
|
|
}
|
|
else if((obj.ismage=="0") && (obj.repeating_college_college!=undefined)) {
|
|
updateIsmage();
|
|
}
|
|
});
|
|
});
|
|
|
|
on("remove:repeating_college", function() {
|
|
updateIsmage();
|
|
});
|
|
|
|
on("change:wp change:ismage", function() {
|
|
getAttrs(["wp", "ismage"], function(values) {
|
|
var wp = values.wp*1;
|
|
if (values.ismage*1 == 0) {
|
|
wp += 20;
|
|
}
|
|
setAttrs({"mr":wp});
|
|
});
|
|
});
|
|
|
|
// Calculating mdcurr
|
|
|
|
on("change:md change:smdtot", function() {
|
|
getAttrs(["md", "smdtot"], function(values) {
|
|
setAttrs( {
|
|
"mdcurr": (values.md*1 + values.smdtot*1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating df
|
|
|
|
on("change:sdftot change:agcurr", function() {
|
|
getAttrs(["sdftot", "agcurr"], function(values) {
|
|
setAttrs( {
|
|
"df": (values.sdftot*1 + values.agcurr*1)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating stunned value
|
|
|
|
on("change:en", function() {
|
|
getAttrs(["en"], function(values) {
|
|
setAttrs( {
|
|
"stun": Math.ceil(values.en/3)
|
|
});
|
|
});
|
|
});
|
|
|
|
//Calculating agcurr
|
|
|
|
on("change:aagtot change:ag change:pagcalc", function() {
|
|
getAttrs(["ag","aagtot","pagcalc"], function(obj) {
|
|
if ((obj.pagcalc*1) == -99) {
|
|
obj.pagcalc = (obj.ag*-1) + (obj.aagtot*-1)
|
|
}
|
|
setAttrs({
|
|
"agcurr": (obj.ag*1) + (obj.aagtot*1) + (obj.pagcalc*1)
|
|
});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Scripts for second section - weapons etc.
|
|
|
|
|
|
|
|
// Calculating Unarmed combat base & damage
|
|
|
|
on("change:agcurr change:ps", function() {
|
|
getAttrs(["agcurr","ps"], function(obj) {
|
|
var ps = obj.ps * 1;
|
|
var psbonus = (ps > 15) ? ps - 15 : 0;
|
|
var dmbonus = Math.floor(psbonus/3) - 4;
|
|
setAttrs({
|
|
"wuc-base": (obj.agcurr * 2) + psbonus,
|
|
"wuc-dm": dmbonus,
|
|
"wuc-sum-dm": dmbonus
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating Unarmed Combat IV
|
|
|
|
on("change:wuc-rank change:ib", function() {
|
|
getAttrs(["wuc-rank","ib"], function(obj) {
|
|
var rank = obj["wuc-rank"];
|
|
if (rank == undefined || rank == "") { rank = 0; }
|
|
var iv = (obj.ib*1) + (rank*1);
|
|
setAttrs({
|
|
"wuc-iv": iv,
|
|
"wuc-sum-iv": iv
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating Unarmed Combat SC
|
|
|
|
on("change:wuc-rank change:wuc-base change:mdcurr", function() {
|
|
getAttrs(["wuc-rank","wuc-base","mdcurr"], function(obj) {
|
|
var rank = obj["wuc-rank"];
|
|
if (rank == "") { rank = undefined; }
|
|
if (rank != undefined) { rank = rank*1; }
|
|
var sc = ((obj["wuc-base"]*1) + ((rank != undefined) ? (rank*4) + (obj.mdcurr*1) : 0));
|
|
setAttrs({
|
|
"wuc-sc": sc,
|
|
"wuc-sum-sc": sc
|
|
});
|
|
});
|
|
});
|
|
|
|
// Updating Unarmed combat weapon summary
|
|
|
|
on("change:wuc-rank", function() {
|
|
getAttrs(["wuc-rank"], function(obj) {
|
|
var rank = obj["wuc-rank"];
|
|
if (rank == undefined || rank == "") { rank = "-"; }
|
|
setAttrs({ "wuc-sum-rank": rank });
|
|
});
|
|
});
|
|
|
|
// Calculating weapon IV
|
|
|
|
on("change:repeating_weapon:rank", function() {
|
|
getAttrs(["repeating_weapon_rank", "ib"], function(obj) {
|
|
var rank = obj.repeating_weapon_rank;
|
|
if (rank==undefined) { rank = 0; }
|
|
var iv = (rank*1)+(obj.ib*1);
|
|
setAttrs({
|
|
"repeating_weapon_iv": iv
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:ib", function() {
|
|
// Trigger recalc of IV for all weapons
|
|
getSectionIDs("repeating_weapon", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_weapon_" + idArray[i] + "_rank");
|
|
}
|
|
IDs.push("ib");
|
|
getAttrs(IDs, function(objAttrs) {
|
|
var ib = objAttrs.ib*1;
|
|
delete objAttrs.ib;
|
|
var attrs = {};
|
|
_.each(objAttrs, function(value, key) {
|
|
var ivID = key.slice(0, -5);
|
|
if (value == undefined || value == "") { value=0; }
|
|
var iv = ib + (value*1);
|
|
attrs[ivID + "iv"] = iv;
|
|
attrs[ivID + "sum-iv"] = iv;
|
|
});
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating weapon SC
|
|
|
|
on("change:repeating_weapon:base change:repeating_weapon:rank", function() {
|
|
getAttrs(["repeating_weapon_base","repeating_weapon_rank","mdcurr"], function(obj) {
|
|
var rank = obj.repeating_weapon_rank;
|
|
if (rank == "") { rank = undefined; }
|
|
if (rank != undefined) { rank = rank*1; }
|
|
var sc = ((obj.repeating_weapon_base*1)+((rank != undefined) ? rank*4 + (obj.mdcurr*1) : 0));
|
|
setAttrs({
|
|
"repeating_weapon_sc": sc
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:mdcurr", function() {
|
|
// Trigger recalc of SC for all weapons
|
|
getSectionIDs("repeating_weapon", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_weapon_" + idArray[i] + "_base");
|
|
IDs.push("repeating_weapon_" + idArray[i] + "_rank");
|
|
}
|
|
IDs.push("mdcurr");
|
|
getAttrs(IDs, function(objAttrs) {
|
|
var mdcurr = objAttrs.mdcurr;
|
|
delete objAttrs.mdcurr;
|
|
var objBase = {};
|
|
var objRank = {};
|
|
var keys = [];
|
|
var attrs = {};
|
|
_.each(objAttrs, function(value, key) {
|
|
if (key.slice(-4) == "base") {
|
|
key = key.slice(0, -5);
|
|
objBase[key] = value;
|
|
keys.push(key);
|
|
}
|
|
else if (key.slice(-4) == "rank") {
|
|
key = key.slice(0, -5);
|
|
objRank[key] = value;
|
|
}
|
|
});
|
|
for (var i = 0; i < keys.length; i++) {
|
|
var rank = objRank[keys[i]];
|
|
if (rank == "") { rank = undefined; }
|
|
if (rank != undefined) { rank = rank*1; }
|
|
var sc = (objBase[keys[i]]*1) + ((rank != undefined) ? (rank*4) + mdcurr : 0);
|
|
attrs[keys[i] + "_sc"] = sc;
|
|
attrs[keys[i] + "_sum-sc"] = sc;
|
|
}
|
|
setAttrs(attrs);
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating weights for multiples of weapons
|
|
|
|
on("change:repeating_weapon:num change:repeating_weapon:wgt", function() {
|
|
getAttrs(["repeating_weapon_num", "repeating_weapon_wgt"], function(obj) {
|
|
setAttrs({
|
|
"repeating_weapon_wgtact": ((obj.repeating_weapon_num*(obj.repeating_weapon_wgt*10000))/10000)
|
|
});
|
|
});
|
|
});
|
|
|
|
// Updating weapon summary
|
|
|
|
on("change:repeating_weapon:options-flag", function() {
|
|
getAttrs(["repeating_weapon_options-flag"], function(flag) {
|
|
// When closing the options display, update the summary
|
|
if(flag["repeating_weapon_options-flag"] == 0) {
|
|
getAttrs([
|
|
"repeating_weapon_name",
|
|
"repeating_weapon_num",
|
|
"repeating_weapon_user",
|
|
"repeating_weapon_usem",
|
|
"repeating_weapon_usec",
|
|
"repeating_weapon_rg",
|
|
"repeating_weapon_iv",
|
|
"repeating_weapon_sc",
|
|
"repeating_weapon_dm",
|
|
"repeating_weapon_cl",
|
|
"repeating_weapon_rank",
|
|
"repeating_weapon_rankmax"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
var count = "";
|
|
var num = obj.repeating_weapon_num*1;
|
|
if (num > 1) {
|
|
count = " (" + num + ")";
|
|
}
|
|
else if(num == 0) {
|
|
count = " - unavailable";
|
|
}
|
|
attrs["repeating_weapon_sum-name"] = obj.repeating_weapon_name + count;
|
|
attrs["repeating_weapon_sum-use"] = (obj.repeating_weapon_user=="0" ? "" : "R") + (obj.repeating_weapon_usem=="0" ? "" : "M") + (obj.repeating_weapon_usec=="0" ? "" : "C");
|
|
attrs["repeating_weapon_sum-range"] = obj.repeating_weapon_rg;
|
|
attrs["repeating_weapon_sum-iv"] = obj.repeating_weapon_iv;
|
|
attrs["repeating_weapon_sum-sc"] = obj.repeating_weapon_sc;
|
|
attrs["repeating_weapon_sum-dm"] = obj.repeating_weapon_dm;
|
|
attrs["repeating_weapon_sum-cl"] = obj.repeating_weapon_cl;
|
|
var rank = obj.repeating_weapon_rank;
|
|
var rankmax = obj.repeating_weapon_rankmax;
|
|
if (rank == undefined || rank == "") { rank = "-"; }
|
|
if (rankmax == undefined || rankmax == "") { rankmax = "-"; }
|
|
attrs["repeating_weapon_sum-rank"] = rank + "/" + rankmax;
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Getting total protection from armour
|
|
|
|
on("change:repeating_armour:pro change:repeating_armour:equip", function(log) {
|
|
getAttrs(["repeating_armour_pro", "repeating_armour_equip"], function(obj) {
|
|
var proact = 0;
|
|
var pro = obj.repeating_armour_pro;
|
|
var equip = obj.repeating_armour_equip;
|
|
if (equip == "on") {
|
|
equip = 1;
|
|
}
|
|
proact = pro * equip;
|
|
setAttrs({"repeating_armour_proact":proact});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_armour:proact remove:repeating_armour", function() {
|
|
var tot = 0;
|
|
getSectionIDs("repeating_armour", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_armour_" + idArray[i] + "_proact");
|
|
}
|
|
getAttrs(IDs, function(obj) {
|
|
_.each(obj, function(value, key) {
|
|
tot += value*1;
|
|
});
|
|
setAttrs({"pro":tot})
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating agility modifier from armour, aagtot
|
|
|
|
on("change:repeating_armour:ag change:repeating_armour:equip", function() {
|
|
getAttrs(["repeating_armour_ag", "repeating_armour_equip"], function(obj) {
|
|
var agact = 0;
|
|
var ag = obj.repeating_armour_ag;
|
|
var equip = obj.repeating_armour_equip;
|
|
if (equip == "on") {
|
|
equip = 1;
|
|
}
|
|
agact = ag * equip;
|
|
setAttrs({"repeating_armour_agact":agact});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_armour:agact remove:repeating_armour", function() {
|
|
var tot = 0;
|
|
getSectionIDs("repeating_armour", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_armour_" + idArray[i] + "_agact");
|
|
}
|
|
getAttrs(IDs, function(obj) {
|
|
_.each(obj, function(value, key) {
|
|
tot += value*1;
|
|
});
|
|
setAttrs({"aagtot":tot})
|
|
});
|
|
});
|
|
});
|
|
|
|
// Updating armour summary
|
|
|
|
on("change:repeating_armour:options-flag", function() {
|
|
getAttrs(["repeating_armour_options-flag"], function(flag) {
|
|
// When closing the options display, update the summary
|
|
if(flag["repeating_armour_options-flag"] == 0) {
|
|
getAttrs(["repeating_armour_type","repeating_armour_pro",
|
|
"repeating_armour_ag","repeating_armour_sth",
|
|
"repeating_armour_equip"], function(obj) {
|
|
var attrs = {};
|
|
attrs["repeating_armour_sum-type"] = obj.repeating_armour_type;
|
|
attrs["repeating_armour_sum-pro"] = obj.repeating_armour_pro;
|
|
attrs["repeating_armour_sum-ag"] = obj.repeating_armour_ag;
|
|
attrs["repeating_armour_sum-sth"] = obj.repeating_armour_sth;
|
|
var equip = "N";
|
|
if(obj.repeating_armour_equip=="on") {
|
|
equip = "Y";
|
|
}
|
|
attrs["repeating_armour_sum-equip"] = equip;
|
|
setAttrs(attrs);
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
// Getting total defence from shields
|
|
|
|
on("change:repeating_shield:rank change:repeating_shield:dfpr change:repeating_shield:equip", function() {
|
|
getAttrs(["repeating_shield_rank", "repeating_shield_dfpr", "repeating_shield_equip"], function(obj) {
|
|
var df = 0;
|
|
var def = 0;
|
|
var rank = obj.repeating_shield_rank;
|
|
var dfpr = obj.repeating_shield_dfpr;
|
|
var equip = obj.repeating_shield_equip;
|
|
if (equip == "on") {
|
|
equip = 1;
|
|
}
|
|
df = rank * dfpr * equip;
|
|
def = rank * dfpr;
|
|
setAttrs({"repeating_shield_df":df, "repeating_shield_def":def});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_shield:df remove:repeating_shield", function() {
|
|
var tot = 0;
|
|
getSectionIDs("repeating_shield", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_shield_" + idArray[i] + "_df");
|
|
}
|
|
getAttrs(IDs, function(obj) {
|
|
_.each(obj, function(value, key) {
|
|
tot += value*1;
|
|
});
|
|
setAttrs({"sdftot":tot})
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating shield MD total
|
|
|
|
on("change:repeating_shield:md change:repeating_shield:equip", function() {
|
|
getAttrs(["repeating_shield_md", "repeating_shield_equip"], function(obj) {
|
|
var mdact = 0;
|
|
var md = obj.repeating_shield_md;
|
|
var equip = obj.repeating_shield_equip;
|
|
if (equip == "on") {
|
|
equip = 1;
|
|
}
|
|
mdact = md * equip;
|
|
setAttrs({"repeating_shield_mdact":mdact});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_shield:mdact remove:repeating_shield", function() {
|
|
var tot = 0;
|
|
getSectionIDs("repeating_shield", function(idArray) {
|
|
var IDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
IDs.push("repeating_shield_" + idArray[i] + "_mdact");
|
|
}
|
|
getAttrs(IDs, function(obj) {
|
|
_.each(obj, function(value, key) {
|
|
tot += value*1;
|
|
});
|
|
setAttrs({"smdtot":tot})
|
|
});
|
|
});
|
|
});
|
|
|
|
// Updating shield summary
|
|
|
|
on("change:repeating_shield:options-flag", function() {
|
|
getAttrs(["repeating_shield_options-flag"], function(flag) {
|
|
// When closing the options display, update the summary
|
|
if(flag["repeating_shield_options-flag"] == 0) {
|
|
getAttrs(["repeating_shield_type","repeating_shield_rank",
|
|
"repeating_shield_def","repeating_shield_md","repeating_shield_equip"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
attrs["repeating_shield_sum-type"] = obj.repeating_shield_type;
|
|
attrs["repeating_shield_sum-rank"] = obj.repeating_shield_rank;
|
|
attrs["repeating_shield_sum-df"] = obj.repeating_shield_def;
|
|
attrs["repeating_shield_sum-md"] = obj.repeating_shield_md;
|
|
var equip = "N";
|
|
if(obj.repeating_shield_equip=="on") {
|
|
equip = "Y";
|
|
}
|
|
attrs["repeating_shield_sum-equip"] = equip;
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Calculating all the weight totals
|
|
|
|
on("change:repeating_weapon:wgtact remove:repeating_weapon", function() {
|
|
var wgttot = 0;
|
|
getSectionIDs("repeating_weapon", function(idArray) {
|
|
var wgtIDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
wgtIDs.push("repeating_weapon_" + idArray[i] + "_wgtact");
|
|
}
|
|
getAttrs(wgtIDs, function(objWgts) {
|
|
_.each(objWgts, function(value) {
|
|
wgttot += value*10000;
|
|
});
|
|
wgttot = wgttot/10000;
|
|
setAttrs({"wwgttot":wgttot});
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_armour:wgt remove:repeating_armour", function() {
|
|
var wgttot = 0;
|
|
getSectionIDs("repeating_armour", function(idArray) {
|
|
var wgtIDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
wgtIDs.push("repeating_armour_" + idArray[i] + "_wgt");
|
|
}
|
|
getAttrs(wgtIDs, function(objWgts) {
|
|
_.each(objWgts, function(value) {
|
|
wgttot += value*10000;
|
|
});
|
|
wgttot = wgttot/10000;
|
|
setAttrs({"awgttot":wgttot});
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_shield:wgt remove:repeating_shield", function() {
|
|
var wgttot = 0;
|
|
getSectionIDs("repeating_shield", function(idArray) {
|
|
var wgtIDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
wgtIDs.push("repeating_shield_" + idArray[i] + "_wgt");
|
|
}
|
|
getAttrs(wgtIDs, function(objWgts) {
|
|
_.each(objWgts, function(value) {
|
|
wgttot += value*10000;
|
|
});
|
|
wgttot = wgttot/10000;
|
|
setAttrs({"swgttot":wgttot});
|
|
});
|
|
});
|
|
});
|
|
|
|
on("change:repeating_possession:wgt remove:repeating_possession", function() {
|
|
var wgttot = 0;
|
|
getSectionIDs("repeating_possession", function(idArray) {
|
|
var wgtIDs = [];
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
wgtIDs.push("repeating_possession_" + idArray[i] + "_wgt");
|
|
}
|
|
getAttrs(wgtIDs, function(objWgts) {
|
|
_.each(objWgts, function(value) {
|
|
wgttot += value*10000;
|
|
});
|
|
wgttot = wgttot/10000;
|
|
setAttrs({"pwgttot":wgttot});
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating wgttot
|
|
|
|
on("change:wwgttot change:awgttot change:swgttot change:monwgt change:pwgttot", function() {
|
|
getAttrs(["wwgttot", "awgttot", "swgttot", "monwgt", "pwgttot"], function(values) {
|
|
setAttrs( {
|
|
"wgttot": ((values.wwgttot*1)+(values.awgttot*1)+(values.swgttot*1)+(values.monwgt*1)+(values.pwgttot*1))
|
|
});
|
|
});
|
|
});
|
|
|
|
// Calculating pagcalc
|
|
|
|
on("change:ps change:wgttot", function(info) {
|
|
getAttrs(["ps", "wgttot"], function(values) {
|
|
var pagcalc = 0;
|
|
var wgttot = values.wgttot*1;
|
|
var ps = values.ps*1;
|
|
// Set limits
|
|
var limits = [];
|
|
if (ps >= 37 && ps < 40) { limits = [65,95,135,170,207.5,247.5,280,307.5,325]; }
|
|
else if (ps >= 33) { limits = [55,80,110,140,180,220,245,262.5,275]; }
|
|
else if (ps >= 28) { limits = [45,65,85,105,140,180,205,260,250]; }
|
|
else if (ps >= 24) { limits = [35,50,65,85,120,160,185,207.5,225]; }
|
|
else if (ps >= 21) { limits = [25,40,55,70,100,140,165,185,200]; }
|
|
else if (ps >= 18) { limits = [17.5,25,35,50,75,105,125,140,150]; }
|
|
else if (ps >= 13) { limits = [12.5,17.5,25,40,60,80,95,112.5,125]; }
|
|
else if (ps >= 9) { limits = [5,12.5,17.5,25,46,60,75,90,100]; }
|
|
else if (ps >= 6) { limits = [0,5,12.5,17.5,25,40,55,67.5,75]; }
|
|
else if (ps >= 3) { limits = [0,0,5,14,21.5,30,37.5,45,50]; }
|
|
else if (ps < 3) { limits = [0,0,0,0,0,0,0,0,0]; }
|
|
// Use limits to get pagcalc
|
|
if (wgttot > limits[8]) { pagcalc = -99; }
|
|
else if (wgttot > limits[7]) { pagcalc=-12; }
|
|
else if (wgttot > limits[6]) { pagcalc=-10; }
|
|
else if (wgttot > limits[5]) { pagcalc=-9; }
|
|
else if (wgttot > limits[4]) { pagcalc=-7; }
|
|
else if (wgttot > limits[3]) { pagcalc=-5; }
|
|
else if (wgttot > limits[2]) { pagcalc=-3; }
|
|
else if (wgttot > limits[1]) { pagcalc=-2; }
|
|
else if (wgttot > limits[0]) { pagcalc=-1; }
|
|
// Calculate agcurr
|
|
setAttrs({"pagcalc":pagcalc});
|
|
});
|
|
});
|
|
|
|
// Calculating total sp value & weight of money
|
|
|
|
on("change:cf change:sp change:gs change:tg", function() {
|
|
getAttrs(["cf", "sp", "gs", "tg"], function(values) {
|
|
setAttrs( {
|
|
"monwgt": (((values.cf*4)+(values.sp*1)+(values.gs*1)+(values.tg*2))/16),
|
|
"totsp": ((values.cf/4)+(values.sp*1)+(values.gs*12)+(values.tg*252))
|
|
});
|
|
});
|
|
});
|
|
|
|
// Updating spell summary
|
|
|
|
on("change:repeating_spell:options-flag", function() {
|
|
getAttrs(["repeating_spell_options-flag"], function(flag) {
|
|
// When closing the options display, update the summary
|
|
if(flag["repeating_spell_options-flag"] == 0) {
|
|
getAttrs(["repeating_spell_name","repeating_spell_type","repeating_spell_rank",
|
|
"repeating_spell_main","repeating_spell_rg","repeating_spell_dur",
|
|
"repeating_spell_resp","repeating_spell_resa","repeating_spell_rit"],
|
|
function(obj) {
|
|
var res = "";
|
|
if (obj.repeating_spell_resp == "P") { res += "P"; }
|
|
if (obj.repeating_spell_resa == "A") { res += "A"; }
|
|
if (res == "") { res = "N"; }
|
|
var rit = obj.repeating_spell_rit;
|
|
if (rit == "on") { rit = "Y"; }
|
|
else {rit = "N"; }
|
|
setAttrs({
|
|
"repeating_spell_sum-name": obj.repeating_spell_name,
|
|
"repeating_spell_sum-type": obj.repeating_spell_type,
|
|
"repeating_spell_sum-rank": obj.repeating_spell_rank,
|
|
"repeating_spell_sum-main": obj.repeating_spell_main,
|
|
"repeating_spell_sum-rg": obj.repeating_spell_rg,
|
|
"repeating_spell_sum-dur": obj.repeating_spell_dur,
|
|
"repeating_spells_sum-res": res,
|
|
"repeating_spell_sum-rit": rit
|
|
});
|
|
}
|
|
);
|
|
}
|
|
});
|
|
});
|
|
|
|
// Check version and update
|
|
|
|
on("sheet:opened", function() {
|
|
getAttrs(["version"], function(obj) {
|
|
// For no previous version given (i.e. version 1)
|
|
if (obj.version == undefined || obj.version == "") {
|
|
// Update Unarmed combat attributes
|
|
getAttrs(["wuc-wsum-iv","wuc-wsum-sc","wuc-wsum-dm","wuc-wsum-rank", "wuc-wrank","wuc-wnotes","wuc-wiv","wuc-wsc","wuc-wbase","wuc-wdm"],
|
|
function(wucObj) {
|
|
var attrs = {};
|
|
for (var attr in wucObj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("w")) + attr.slice(attr.lastIndexOf("w")+1);
|
|
attrs[newAttr] = wucObj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
//Update the various repeating sections
|
|
getSectionIDs("repeating_weapon", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_weapon_"+idArray[i]+"_wsum-name",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-use",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-range",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-iv",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-sc",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-dm",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-cl",
|
|
"repeating_weapon_"+idArray[i]+"_wsum-rank",
|
|
"repeating_weapon_"+idArray[i]+"_wname",
|
|
"repeating_weapon_"+idArray[i]+"_wrank",
|
|
"repeating_weapon_"+idArray[i]+"_wrankmax",
|
|
"repeating_weapon_"+idArray[i]+"_wnum",
|
|
"repeating_weapon_"+idArray[i]+"_wnotes",
|
|
"repeating_weapon_"+idArray[i]+"_wiv",
|
|
"repeating_weapon_"+idArray[i]+"_wsc",
|
|
"repeating_weapon_"+idArray[i]+"_wwgt",
|
|
"repeating_weapon_"+idArray[i]+"_wwgtact",
|
|
"repeating_weapon_"+idArray[i]+"_wbase",
|
|
"repeating_weapon_"+idArray[i]+"_wdm",
|
|
"repeating_weapon_"+idArray[i]+"_wrg",
|
|
"repeating_weapon_"+idArray[i]+"_wps",
|
|
"repeating_weapon_"+idArray[i]+"_wmd",
|
|
"repeating_weapon_"+idArray[i]+"_wcl",
|
|
"repeating_weapon_"+idArray[i]+"_wuser",
|
|
"repeating_weapon_"+idArray[i]+"_wusem",
|
|
"repeating_weapon_"+idArray[i]+"_wusec",
|
|
"repeating_weapon_"+idArray[i]+"_whand1",
|
|
"repeating_weapon_"+idArray[i]+"_whand2"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+2);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
getSectionIDs("repeating_armour", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_armour_"+idArray[i]+"_atype",
|
|
"repeating_armour_"+idArray[i]+"_aequip",
|
|
"repeating_armour_"+idArray[i]+"_aproact",
|
|
"repeating_armour_"+idArray[i]+"_anotes",
|
|
"repeating_armour_"+idArray[i]+"_awgt",
|
|
"repeating_armour_"+idArray[i]+"_apro",
|
|
"repeating_armour_"+idArray[i]+"_aag",
|
|
"repeating_armour_"+idArray[i]+"_aagact",
|
|
"repeating_armour_"+idArray[i]+"_asth"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+2);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
getSectionIDs("repeating_shield", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_shield_"+idArray[i]+"_stype",
|
|
"repeating_shield_"+idArray[i]+"_sequip",
|
|
"repeating_shield_"+idArray[i]+"_srank",
|
|
"repeating_shield_"+idArray[i]+"_sdf",
|
|
"repeating_shield_"+idArray[i]+"_sdef",
|
|
"repeating_shield_"+idArray[i]+"_snotes",
|
|
"repeating_shield_"+idArray[i]+"_swgt",
|
|
"repeating_shield_"+idArray[i]+"_sdfpr",
|
|
"repeating_shield_"+idArray[i]+"_smd",
|
|
"repeating_shield_"+idArray[i]+"_smdact"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+2);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
getSectionIDs("repeating_possession", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_possession_"+idArray[i]+"_pname",
|
|
"repeating_possession_"+idArray[i]+"_pwgt"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+2);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
getSectionIDs("repeating_spell", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_spell_"+idArray[i]+"_sprank",
|
|
"repeating_spell_"+idArray[i]+"_spmain",
|
|
"repeating_spell_"+idArray[i]+"_spdesc",
|
|
"repeating_spell_"+idArray[i]+"_spname",
|
|
"repeating_spell_"+idArray[i]+"_sprg",
|
|
"repeating_spell_"+idArray[i]+"_spdur",
|
|
"repeating_spell_"+idArray[i]+"_spexm",
|
|
"repeating_spell_"+idArray[i]+"_sptype",
|
|
"repeating_spell_"+idArray[i]+"_spbase",
|
|
"repeating_spell_"+idArray[i]+"_spresp",
|
|
"repeating_spell_"+idArray[i]+"_spresa",
|
|
"repeating_spell_"+idArray[i]+"_sprit"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+3);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
getSectionIDs("repeating_skill", function(idArray) {
|
|
for (var i = 0; i < idArray.length; i++) {
|
|
getAttrs(
|
|
["repeating_skill_"+idArray[i]+"_sktype",
|
|
"repeating_skill_"+idArray[i]+"_sknotes",
|
|
"repeating_skill_"+idArray[i]+"_skrank"],
|
|
function(obj) {
|
|
var attrs = {};
|
|
for (var attr in obj) {
|
|
var newAttr = attr.slice(0, attr.lastIndexOf("_")+1) + attr.slice(attr.lastIndexOf("_")+3);
|
|
attrs[newAttr] = obj[attr];
|
|
}
|
|
setAttrs(attrs);
|
|
}
|
|
);
|
|
}
|
|
});
|
|
}
|
|
setAttrs({version: 1.1});
|
|
});
|
|
});
|
|
|
|
</script>
|
|
|
|
|
|
<div class="sheet-charsheet">
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm sheet-chardets">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_hist-options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-header">Description</div>
|
|
<div class="sheet-descrip">
|
|
<span name="attr_descrip"></span>
|
|
<div class="sheet-stat"><span class="sheet-pictos">U</span><span name="attr_stat-height"></span></div>
|
|
<div class="sheet-stat"><span class="sheet-pictos">a</span><span name="attr_stat-weight"></span></div>
|
|
<div class="sheet-stat"><span class="sheet-pictos">\</span><span name="attr_stat-age"></span></div>
|
|
<div class="sheet-stat"><span class="sheet-pictos">k</span><button class="sheet-btn" type="roll" value="&{template:default} {{name=Beauty Roll}}} {{Physical Beauty=[[@{pb}]]}} {{D100=[[1d100]]}}"><span name="attr_stat-pb"></span></button></div>
|
|
</div>
|
|
<div class="sheet-header">History</div>
|
|
<div class="sheet-hsummary">
|
|
<span>The </span>
|
|
<span name="attr_hsum-legit"></span><span> child of </span>
|
|
<span name="attr_hsum-status"></span><span>, you were born under the aspect of </span>
|
|
<span name="attr_hsum-aspect"></span><span>.</span>
|
|
<span name="attr_hsum-order"></span>
|
|
</div>
|
|
<div class="sheet-initchars">
|
|
<ul>
|
|
<li>
|
|
<span>Gender:</span>
|
|
<input type="text" name="attr_gender" placeholder="ungendered">
|
|
</li>
|
|
<li>
|
|
<span>Handedness:</span>
|
|
<input type="text" name="attr_hand" placeholder="Right-handed">
|
|
</li>
|
|
<li>
|
|
<span>Race:</span>
|
|
<input type="text" name="attr_race" placeholder="Human">
|
|
</li>
|
|
<li>
|
|
<span>Racial TMR modifier:</span>
|
|
<select name="attr_tmrracemod">
|
|
<option value="-1">-1</option>
|
|
<option value="0" selected>0</option>
|
|
<option value="1">+1</option>
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<span>Aspect:</span>
|
|
<select name="attr_aspect">
|
|
<option value="the winter stars">the winter stars</option>
|
|
<option value="the spring stars">the spring stars</option>
|
|
<option value="the summers stars">the summer stars</option>
|
|
<option value="the autumn stars">the autumn stars</option>
|
|
<option value="the sun">the sun</option>
|
|
<option value="the moon">the moon</option>
|
|
<option value="life">life</option>
|
|
<option value="death">death</option>
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<span>Social status:</span>
|
|
<select name="attr_status">
|
|
<option value="poor trash">poor trash</option>
|
|
<option value="impoverished gentlefolk">impoverished gentlefolk</option>
|
|
<option value="a farmer">a farmer</option>
|
|
<option value="a burgher">a burgher</option>
|
|
<option value="a merchant">a merchant</option>
|
|
<option value="a merchant prince">a merchant prince</option>
|
|
<option value="a craftsman">a craftsman</option>
|
|
<option value="an adventurer">an adventurer</option>
|
|
<option value="a bandit">a bandit</option>
|
|
<option value="a pirate">a pirate</option>
|
|
<option value="lesser nobility">lesser nobility</option>
|
|
<option value="greater nobility">greater nobility</option>
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<span>Standing:</span>
|
|
<select name="attr_legit">
|
|
<option value="legitimate">legitimate</option>
|
|
<option value="illegitimate">illegitimate</option>
|
|
<option value="first born">first born</option>
|
|
</select>
|
|
</li>
|
|
<li>
|
|
<span>Birth order:</span>
|
|
<input type="text" name="attr_order" placeholder="third">
|
|
</li>
|
|
<li>
|
|
<span>Height:</span>
|
|
<input type="text" name="attr_height" placeholder="Height"></li>
|
|
<li>
|
|
<span>Weight:</span>
|
|
<input type="text" name="attr_weight" placeholder="Weight"></li>
|
|
<li>
|
|
<span>Age:</span>
|
|
<input type="number" name="attr_age" value="0" min="0"></li>
|
|
<li>
|
|
<span>Beauty (PB):</span>
|
|
<input type="number" name="attr_pb" min="0"></li>
|
|
</ul>
|
|
</div>
|
|
<div class="sheet-rpnotes">
|
|
<div class="sheet-header">RP notes:</div>
|
|
<textarea name="attr_rpnotes" placeholder="RP Notes"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-colm sheet-chars">
|
|
<div class="sheet-header">Characteristics</div>
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm">
|
|
<div class="sheet-prichars">
|
|
<ul>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Strength Roll}} {{Physical Strength=[[@{ps}]]}} {{D100=[[1d100]]}}">Physical Strength (PS):</button>
|
|
<input type="number" name="attr_ps" value="0" min="0"></li>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Dexterity Roll}} {{Manual Dexterity=[[@{mdcurr}]]}} {{D100=[[1d100]]}}">Manual Dexterity (MD):</button>
|
|
<input type="number" name="attr_mdcurr" value="0" readonly> / <input type="number" name="attr_md" value="0" min="0"></li>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Agility Roll}} {{Agility=[[@{agcurr}]]}} {{D100=[[1d100]]}}">Agility (AG):</button>
|
|
<input type="number" name="attr_agcurr" readonly value="0"> / <input type="number" name="attr_ag" value="0" min="0"></li>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Magic Aptitude Roll}} {{Magical Aptitude=[[@{ma}]]}} {{D100=[[1d100]]}}">Magical Aptitude (MA):</button>
|
|
<input type="number" name="attr_ma" value="0" min="0"></li>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Will Power Roll}} {{Will Power=[[@{wp}]]}} {{D100=[[1d100]]}}">Will Power (WP):</button>
|
|
<input type="number" name="attr_wp" value="0" min="0"></li>
|
|
<li>
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Perception Roll}} {{Perception=[[@{pc}]]}} {{D100=[[1d100]]}}">Perception (PC):</button>
|
|
<input type="number" name="attr_pc" value="0" min="0"></li>
|
|
<li>
|
|
<span>Initiative base:</span>
|
|
<input type="number" name="attr_ib" value="0" readonly></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-colm">
|
|
<div class="sheet-secchars">
|
|
<ul>
|
|
<li>
|
|
<span>Endurance (EN):</span>
|
|
<input type="number" name="attr_encurr" value="0" min="0"> /
|
|
<input type="number" name="attr_en" value="0" min="0"></li>
|
|
<li>
|
|
<span>Fatigue (FT):</span>
|
|
<input type="number" name="attr_ftcurr" value="0" min="0"> /
|
|
<input type="number" name="attr_ft" value="0" min="0"></li>
|
|
<li>
|
|
<span>Tactical Movement Rate (TMR):</span>
|
|
<input type="number" name="attr_tmr" readonly value="0"></li>
|
|
<li>
|
|
<span>Protection:</span>
|
|
<input type="number" name="attr_pro" readonly value="0"></li>
|
|
<li>
|
|
<span>Defence (DF):</span>
|
|
<input type="number" name="attr_df" value="0" readonly></li>
|
|
<li>
|
|
<span>Magical Resistance (MR):</span>
|
|
<input type="number" name="attr_mr" readonly value="0"></li>
|
|
<li>
|
|
<span>Stunned on:</span>
|
|
<input type="number" name="attr_stun" value="0" readonly>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- Left column -->
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm sheet-leftcol">
|
|
<!-- Weapons -->
|
|
<div class="sheet-weapons">
|
|
<div class="sheet-header">Weapons</div>
|
|
<div class="sheet-headers">
|
|
<span>Name</span>
|
|
<span>Use</span>
|
|
<span>RG</span>
|
|
<span>IV</span>
|
|
<span>SC</span>
|
|
<span>DM</span>
|
|
<span>CL</span>
|
|
<span>RNK</span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-repeating-weapon sheet-unarmed-combat">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_wuc-options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-summary">
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=Unarmed Combat}} {{SC=[[@{wuc-sc}]]}} {{D100=[[1d100]]}} {{Damage D10 + @{wuc-dm}=[[1d10+@{wuc-dm}]]}}">
|
|
<span>Unarmed combat</span></button>
|
|
<span>MC</span>
|
|
<span>0</span>
|
|
<span name="attr_wuc-sum-iv">0</span>
|
|
<span name="attr_wuc-sum-sc">0</span>
|
|
<span name="attr_wuc-sum-dm">0</span>
|
|
<span>C</span>
|
|
<span name="attr_wuc-sum-rank">0</span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-weapon">
|
|
<input class="sheet-expand-flag" type="checkbox" name="attr_wuc-expand-flag" checked>
|
|
<span class="sheet-shrink">J</span>
|
|
<span class="sheet-expand">.</span>
|
|
<div class="sheet-weapondets">
|
|
<ul>
|
|
<li>
|
|
<span>Weapon:</span>
|
|
<input type="text" value="Unarmed combat" readonly></li>
|
|
<li>
|
|
<span>Rank:</span>
|
|
<input type="number" name="attr_wuc-rank"></li>
|
|
</ul>
|
|
<span>Notes:</span>
|
|
<textarea name="attr_wuc-notes" placeholder="Weapon notes"></textarea>
|
|
</div>
|
|
<div class="sheet-weaponstats">
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Initiative (IV):</span>
|
|
<input type="number" name="attr_wuc-iv" value="0" readonly>
|
|
</li>
|
|
<li>
|
|
<span>Success chance (SC):</span>
|
|
<input type="number" name="attr_wuc-sc" value="0" readonly>
|
|
</li>
|
|
<li>
|
|
<span>Base %:</span>
|
|
<input type="number" name="attr_wuc-base" value="0" readonly></li>
|
|
<li>
|
|
<span>Damage (DM):</span>
|
|
<input type="number" name="attr_wuc-dm" value="0" readonly></li>
|
|
<li>
|
|
<span>Range (RG):</span>
|
|
<input type="number" value="0" readonly></li>
|
|
</ul>
|
|
</div>
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Class (CL):</span>
|
|
<select disabled>
|
|
<option>C - Crushing</option>
|
|
</select></li>
|
|
<li>
|
|
<div class="sheet-use">
|
|
<span>Combat Use:</span>
|
|
<ul>
|
|
<li>
|
|
<input type="checkbox" readonly><span>R - Ranged</span></li>
|
|
<li>
|
|
<input type="checkbox" readonly checked><span>M - Melee</span></li>
|
|
<li>
|
|
<input type="checkbox" readonly checked><span>C - Close</span></li>
|
|
</ul>
|
|
</div></li>
|
|
<li>
|
|
<div class="sheet-hand">
|
|
<span>Handed:</span>
|
|
<input type="checkbox" value="1" checked readonly><span>1</span>
|
|
<input type="checkbox" value="2" readonly><span>2</span>
|
|
</div></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<fieldset class="repeating_weapon">
|
|
<div class="sheet-repeating-weapon">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-summary">
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=@{name}}} {{SC=[[@{sc}]]}} {{D100=[[1d100]]}} {{Damage D10 + @{dm}=[[1d10+@{dm}]]}}">
|
|
<span name="attr_sum-name"></span></button>
|
|
<span name="attr_sum-use"></span>
|
|
<span name="attr_sum-range"></span>
|
|
<span name="attr_sum-iv"></span>
|
|
<span name="attr_sum-sc"></span>
|
|
<span name="attr_sum-dm"></span>
|
|
<span name="attr_sum-cl"></span>
|
|
<span name="attr_sum-rank"></span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-weapon">
|
|
<input class="sheet-expand-flag" type="checkbox" name="attr_expand-flag" checked>
|
|
<span class="sheet-shrink">J</span>
|
|
<span class="sheet-expand">.</span>
|
|
<div class="sheet-weapondets">
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm">
|
|
<span>Weapon:</span>
|
|
<input type="text" name="attr_name" placeholder="Shortsword">
|
|
</div>
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Rank:</span>
|
|
<input type="number" name="attr_rank" min="0"> /
|
|
<input type="number" name="attr_rankmax" min="0"></li>
|
|
<li>
|
|
<span>Number carried:</span>
|
|
<input type="number" name="attr_num" value="0" min="0"></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
<span>Notes:</span>
|
|
<textarea name="attr_notes" placeholder="Weapon notes"></textarea>
|
|
</div>
|
|
<div class="sheet-weaponstats">
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Initiative (IV):</span>
|
|
<input type="number" name="attr_iv" value="0" readonly>
|
|
</li>
|
|
<li>
|
|
<span>Success chance (SC):</span>
|
|
<input type="number" name="attr_sc" value="0" readonly>
|
|
</li>
|
|
<li>
|
|
<span>Weight (lbs):</span>
|
|
<input type="number" name="attr_wgt" value="0" min="0" step="any"></li>
|
|
<input type="hidden" name="attr_wgtact" value="0">
|
|
<li>
|
|
<span>Base %:</span>
|
|
<input type="number" name="attr_base" value="0" min="0"></li>
|
|
<li>
|
|
<span>Damage (DM):</span>
|
|
<input type="number" name="attr_dm" value="0" min="0"></li>
|
|
<li>
|
|
<span>Range (RG):</span>
|
|
<input type="number" name="attr_rg" value="0" min="0"></li>
|
|
</ul>
|
|
</div>
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>PS required:</span>
|
|
<input type="number" name="attr_ps" value="0" min="0"></li>
|
|
<li>
|
|
<span>MD required:</span>
|
|
<input type="number" name="attr_md" value="0" min="0"></li>
|
|
<li>
|
|
<span>Class (CL):</span>
|
|
<select name="attr_cl">
|
|
<option value="-">-</option>
|
|
<option value="A">A - Thrusting</option>
|
|
<option value="B">B - Slashing</option>
|
|
<option value="C">C - Crushing</option>
|
|
</select></li>
|
|
<li>
|
|
<div class="sheet-use">
|
|
<span>Combat Use:</span>
|
|
<ul>
|
|
<li>
|
|
<input type="checkbox" name="attr_user" value="R"><span>R - Ranged</span></li>
|
|
<li>
|
|
<input type="checkbox" name="attr_usem" value="M"><span>M - Melee</span></li>
|
|
<li>
|
|
<input type="checkbox" name="attr_usec" value="C"><span>C - Close</span></li>
|
|
</ul>
|
|
</div></li>
|
|
<li>
|
|
<div class="sheet-hand">
|
|
<span>Handed:</span>
|
|
<input type="checkbox" value="1" checked name="attr_hand1"><span>1</span>
|
|
<input type="checkbox" value="2" name="attr_hand2"><span>2</span>
|
|
</div></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<!-- Armour -->
|
|
<div class="sheet-armours">
|
|
<div class="sheet-header">Armours</div>
|
|
<div class="sheet-headers">
|
|
<span>Type</span>
|
|
<span>Pro</span>
|
|
<span>AG</span>
|
|
<span>Sth</span>
|
|
<span>Equip</span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<fieldset class="repeating_armour">
|
|
<div class="sheet-repeating-armour">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-summary">
|
|
<span name="attr_sum-type"></span>
|
|
<span name="attr_sum-pro"></span>
|
|
<span name="attr_sum-ag"></span>
|
|
<span name="attr_sum-sth"></span>
|
|
<span name="attr_sum-equip"></span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-armour">
|
|
<ul>
|
|
<li>
|
|
<span>Type:</span>
|
|
<input type="text" name="attr_type" placeholder="Cloth">
|
|
</li>
|
|
<li>
|
|
<span>Equipped?</span>
|
|
<input type="checkbox" name="attr_equip">
|
|
<input type="hidden" name="attr_proact" value="0">
|
|
</li>
|
|
<li>
|
|
<textarea name="attr_notes" placeholder="Armour notes"></textarea>
|
|
</li>
|
|
<li>
|
|
<span>Weight:</span>
|
|
<input type="number" name="attr_wgt" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Protection:</span>
|
|
<input type="number" name="attr_pro" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Agility Loss:</span>
|
|
<input type="number" name="attr_ag" value="0" max="0">
|
|
<input type="hidden" name="attr_agact" value="0">
|
|
</li>
|
|
<li>
|
|
<span>Stealth Adjustment:</span>
|
|
<input type="number" name="attr_sth" value="0">
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="sheet-total">
|
|
<span>PROTECTION</span>
|
|
<input type="number" name="attr_pro" readonly value="0">
|
|
<input type="hidden" name="attr_aagtot" value="0">
|
|
</div>
|
|
</div>
|
|
<!-- Shields -->
|
|
<div class="sheet-shields">
|
|
<div class="sheet-header">Shields</div>
|
|
<div class="sheet-headers">
|
|
<span>Type</span>
|
|
<span>Rank</span>
|
|
<span>DF</span>
|
|
<span>MD</span>
|
|
<span>Equip</span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<fieldset class="repeating_shield">
|
|
<div class="sheet-repeating-shield">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-summary">
|
|
<span name="attr_sum-type"></span>
|
|
<span name="attr_sum-rank"></span>
|
|
<span name="attr_sum-df"></span>
|
|
<span name="attr_sum-md"></span>
|
|
<span name="attr_sum-equip"></span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-shield">
|
|
<ul>
|
|
<li>
|
|
<span>Type:</span>
|
|
<input type="text" name="attr_type">
|
|
</li>
|
|
<li>
|
|
<span>Equipped?</span>
|
|
<input type="checkbox" name="attr_equip">
|
|
</li>
|
|
<li>
|
|
<span>Rank:</span>
|
|
<input type="number" name="attr_rank" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Shield defence (DF):</span>
|
|
<input type="hidden" name="attr_df" value="0">
|
|
<input type="number" name="attr_def" value="0" readonly>
|
|
</li>
|
|
<li>
|
|
<textarea name="attr_notes" placeholder="Shield notes"></textarea>
|
|
</li>
|
|
<li>
|
|
<span>Weight:</span>
|
|
<input type="number" name="attr_wgt" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Defence per rank:</span>
|
|
<input type="number" name="attr_dfpr" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Manual Dexterity loss:</span>
|
|
<input type="number" name="attr_md" value="0" max="0">
|
|
<input type="hidden" name="attr_mdact" value="0">
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
<div class="sheet-total">
|
|
<span>SHIELD DEFENCE</span>
|
|
<input type="number" name="attr_sdftot" readonly value="0">
|
|
<input type="hidden" name="attr_smdtot" value="0">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-possessions">
|
|
<div class="sheet-header">Possessions</div>
|
|
<div class="sheet-headers">
|
|
<span>Name</span>
|
|
<span>Weight (lbs)</span>
|
|
</div>
|
|
<div class="sheet-summary">
|
|
<span>Weapons</span>
|
|
<span name="attr_wwgttot"></span>
|
|
</div>
|
|
<div class="sheet-summary">
|
|
<span>Armours</span>
|
|
<span name="attr_awgttot"></span>
|
|
</div>
|
|
<div class="sheet-summary">
|
|
<span>Shields</span>
|
|
<span name="attr_swgttot"></span>
|
|
</div>
|
|
<div class="sheet-summary">
|
|
<span>Money</span>
|
|
<span name="attr_monwgt"></span>
|
|
</div>
|
|
<fieldset class="repeating_possession">
|
|
<div class="sheet-possession">
|
|
<input type="text" name="attr_name">
|
|
<input type="number" name="attr_wgt" value="0" step="any" min="0">
|
|
</div>
|
|
</fieldset>
|
|
<div class="sheet-summary">
|
|
<span>TOTAL</span>
|
|
<input type="hidden" name="attr_pwgttot" value="0">
|
|
<span name="attr_wgttot"></span>
|
|
</div>
|
|
<div class="sheet-pagmod">
|
|
<span>AGILITY MODIFIER</span>
|
|
<input type="number" name="attr_pagcalc" readonly value="0">
|
|
</div>
|
|
</div>
|
|
<div class="sheet-money">
|
|
<div class="sheet-header">Money</div>
|
|
<div class="sheet-mrow">
|
|
<span>Copper Farthings (cf) 1/4sp</span>
|
|
<input type="number" name="attr_cf" value="0" min="0">
|
|
</div>
|
|
<div class="sheet-mrow">
|
|
<span>Silver Pennies (sp)</span>
|
|
<input type="number" name="attr_sp" value="0" min="0">
|
|
</div>
|
|
<div class="sheet-mrow">
|
|
<span>Gold Shillings (gs) 12sp</span>
|
|
<input type="number" name="attr_gs" value="0" min="0">
|
|
</div>
|
|
<div class="sheet-mrow">
|
|
<span>Truesilver Guineas (tg) 21gs</span>
|
|
<input type="number" name="attr_tg" value="0" min="0">
|
|
</div>
|
|
<div class="sheet-mrow">
|
|
<span>TOTAL (in sp)</span>
|
|
<input type="number" name="attr_totsp" value="0" readonly>
|
|
</div>
|
|
</div>
|
|
</div><!-- Right column -->
|
|
<div class="sheet-colm">
|
|
<!-- Magic & Spells -->
|
|
<div class="sheet-magic">
|
|
<!-- Colleges -->
|
|
<div class="sheet-colleges">
|
|
<div class="sheet-header">Magical Colleges</div>
|
|
<fieldset class="repeating_college">
|
|
<input type="text" name="attr_college" placeholder="Ensorcelments & Enchantments">
|
|
</fieldset>
|
|
<input type="hidden" name="attr_ismage" value="0">
|
|
</div>
|
|
<!-- Spells -->
|
|
<div class="sheet-spells">
|
|
<div class="sheet-header">Spells</div>
|
|
<div class="sheet-headers">
|
|
<span>Name</span>
|
|
<span>KT</span>
|
|
<span>RK</span>
|
|
<span>SC</span>
|
|
<span>RG</span>
|
|
<span>DR</span>
|
|
<span>RS</span>
|
|
<span>RT</span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<fieldset class="repeating_spell">
|
|
<div class="sheet-repeating-spell">
|
|
<input class="sheet-options-flag" type="checkbox" name="attr_options-flag" checked>
|
|
<span class="sheet-flag-unchecked">W</span><span class="sheet-flag-checked">3</span>
|
|
<div class="sheet-summary">
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=@{name}}} {{SC=[[@{main}]]}} {{D100=[[1d100]]}}">
|
|
<span name="attr_sum-name"></span></button>
|
|
<span name="attr_sum-type"></span>
|
|
<span name="attr_sum-rank"></span>
|
|
<span name="attr_sum-main"></span>
|
|
<span name="attr_sum-rg"></span>
|
|
<span name="attr_sum-dur"></span>
|
|
<span name="attr_sum-res"></span>
|
|
<span name="attr_sum-rit"></span>
|
|
<span> </span><!-- For icons -->
|
|
</div>
|
|
<div class="sheet-spell">
|
|
<input class="sheet-expand-flag" type="checkbox" name="attr_expand-flag" checked>
|
|
<span class="sheet-shrink">J</span>
|
|
<span class="sheet-expand">.</span>
|
|
<div class="sheet-spelldets">
|
|
<ul>
|
|
<li>
|
|
<span>Rank (RK):</span>
|
|
<input type="number" name="attr_rank" value="0" min="0">
|
|
</li>
|
|
<li><span>Main % (SC):</span><input type="number" name="attr_main" value="0"></li>
|
|
<li>
|
|
<span>Effects:</span>
|
|
<textarea name="attr_desc" placeholder="Sees the caster as true friend"></textarea>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="sheet-spellstats">
|
|
<div class="sheet-2colsec">
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Name:</span>
|
|
<input type="text" name="attr_name" placeholder="Spell of Charming">
|
|
</li>
|
|
<li>
|
|
<span>Range (RG):</Span>
|
|
<input type="text" name="attr_rg" placeholder="15ft">
|
|
</li>
|
|
<li>
|
|
<span>Duration (DR):</span>
|
|
<input type="text" name="attr_dur" placeholder="1 hr">
|
|
</li>
|
|
<li><span>Experience Multiple (EXM):</span><input type="number" name="attr_exm" value="0" min="0"></li>
|
|
</ul>
|
|
</div>
|
|
<div class="sheet-colm">
|
|
<ul>
|
|
<li>
|
|
<span>Knowledge type (KT):</span>
|
|
<select name="attr_type">
|
|
<option value="G">General Knowledge</option>
|
|
<option value="S">Special Knowledge</option>
|
|
</select>
|
|
</li>
|
|
<li><span>Base %:</span><input type="number" name="attr_base" value="0" min="0"></li>
|
|
<li>
|
|
<div class="sheet-res">
|
|
<span>Resistance (RS):</span>
|
|
<ul>
|
|
<li><input type="checkbox" value="P" name="attr_resp">Passive</li>
|
|
<li><input type="checkbox" value="A" name="attr_resa">Active</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li><span>Ritual (RT):</span><input type="checkbox" name="attr_rit"></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-skills">
|
|
<div class="sheet-header">Skills</div>
|
|
<div class="sheet-headers">
|
|
<span>Skill</span>
|
|
<span>Notes</span>
|
|
<span>Rank</span>
|
|
</div>
|
|
<fieldset class="repeating_skill">
|
|
<div class="sheet-skdata">
|
|
<div class="sheet-sktype">
|
|
<button class="sheet-btn" type="roll" value="&{template:default} {{name=@{type}}} {{D100=[[1d100]]}}"></button>
|
|
<select name="attr_type">
|
|
<option value="adventuring">Adventuring</option>
|
|
<option value="language">Language</option>
|
|
<optgroup label="Skill groups">
|
|
<option value="alchemist">Alchemist</option>
|
|
<option value="assassin">Assassin</option>
|
|
<option value="astrologer">Astrologer</option>
|
|
<option value="beast-master">Beast Master</option>
|
|
<option value="courtesan">Courtesan</option>
|
|
<option value="healer">Healer</option>
|
|
<option value="mechanician">Mechanician</option>
|
|
<option value="merchant">Merchant</option>
|
|
<option value="military-scientist">Military Scientist</option>
|
|
<option value="navigator">Navigator</option>
|
|
<option value="ranger">Ranger</option>
|
|
<option value="spy">Spy</option>
|
|
<option value="thief">Thief</option>
|
|
<option value="troubador">Troubador</option>
|
|
</optgroup>
|
|
</select>
|
|
</div>
|
|
<input type="text" name="attr_notes">
|
|
<input type="number" value="0" name="attr_rank" min="0">
|
|
</div>
|
|
</fieldset>
|
|
</div>
|
|
<div class="sheet-special">
|
|
<div class="sheet-header">Special abilities/considerations</div>
|
|
<textarea name="attr_special" placeholder="e.g. Racial abilities"></textarea>
|
|
</div>
|
|
<div class="sheet-exp">
|
|
<div class="sheet-header">Experience</div>
|
|
<ul>
|
|
<li>
|
|
<span>Current experience</span>
|
|
<input type="number" name="attr_exp" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Lifetime total</span>
|
|
<input type="number" name="attr_exptot" value="0" min="0">
|
|
</li>
|
|
<li>
|
|
<span>Experience Modifier</span>
|
|
<input type="number" name="attr_exm" value="1.0" step="any" min="0">
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="sheet-hidden">
|
|
Version <input type="hidden" name="attr_version">
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
|