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

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>