diff --git a/Pathfinder-Neceros/pathfinder-neceros.css b/Pathfinder-Neceros/pathfinder-neceros.css index 2f9a5f4d61..13826e3aa1 100644 --- a/Pathfinder-Neceros/pathfinder-neceros.css +++ b/Pathfinder-Neceros/pathfinder-neceros.css @@ -58,7 +58,6 @@ textarea { resize:both; } - .sheet-cheat { width:100%; display:block; @@ -233,6 +232,10 @@ input[type="text"]{ display: table; width: 100%; } +.charsheet .sheet-3colrow .sheet-col { + width:33% !important; + margin-right:-5px !important; +} /* make error row more visible (colorblind users could not see slightly darker border ) also need 1 more level in selector or base css will override border */ @@ -390,9 +393,20 @@ span.sheet-text-button { background-color:#ce0f69; color:#FFFFFF; } +.sheet-skills .sheet-table-row .sheet-table-cell:first-child { + font-size:1rem; + padding-left:0; +} +.sheet-skills button[type=roll] { + width:1.25rem; + height:1.6rem; + padding-left:1px; +} + +button[type=roll].sheet-custom-button::before, button[type=roll].sheet-command-button::before { - content: ""; + content: "" !important; } /************************************* BUFFS ******************************************/ .sheet-linked-fields { @@ -492,11 +506,11 @@ input.sheet-tabinput { margin-right:-14%; } .sheet-tab.sheet-tab99 { - width:10%; + width:11%; } .sheet-tabinput.sheet-tab99 { - width:10%; - margin-right:-10%; + width:11%; + margin-right:-11%; } @@ -1566,6 +1580,35 @@ input[type="number"].sheet-entry-wide { display:none; } +.sheet-textarea-gray:not(:checked) ~ .sheet-small-label2 textarea { + background-color: silver !important; + color: dimgrey !important; + pointer-events: none; +} +.sheet-textarea-gray:not(:checked) ~ .sheet-small-label2 { + pointer-events: none; +} +.sheet-insertmacrocell { + min-width:23.85%; + max-width:48.5%; + display:inline-block; +} +.sheet-insertmacrocell.sheet-col1{ + width:24%; +} +.sheet-insertmacrocell.sheet-col2{ + width:25%; +} +.sheet-insertmacrocell.sheet-col3{ + width:25%; +} +.sheet-insertmacrocell.sheet-col4{ + width:20%; +} +.sheet-insertmacrocell .sheet-small-label2{ + width:95%; + display:inline; +} /* top of repeating section */ .sheet-minimize-show:checked ~ .sheet-repeating-fields .sheet-expand, .sheet-minimize-show:checked ~ .sheet-repeating-fields .sheet-sect, @@ -2321,4 +2364,4 @@ input[type="number"].sheet-entry-wide { border-color:#4A57ED; color:White; background-color: #4A57ED; -} +} \ No newline at end of file diff --git a/Pathfinder-Neceros/pathfinder-neceros.html b/Pathfinder-Neceros/pathfinder-neceros.html index 293af1bfca..e0aaf5c17c 100644 --- a/Pathfinder-Neceros/pathfinder-neceros.html +++ b/Pathfinder-Neceros/pathfinder-neceros.html @@ -10,15 +10,25 @@ @@ -789,7 +798,7 @@ - + @@ -1574,7 +1583,7 @@ - + @@ -2203,47 +2212,80 @@ - + +
All Attacks Insert Macros
- - - - +
+ + +
+
+ + +
+
+ + +
+
+ + +
- - - - +
+ + +
+
+ + +
+
+ + +
+
+ + +

@@ -2275,9 +2317,9 @@
- + - +
@@ -2383,12 +2425,12 @@ Notes
- - - + + + - - + +
@@ -2548,14 +2590,22 @@
- - +
+ + +
+
+ + +
@@ -2787,7 +2890,7 @@ + - +
  @@ -2828,7 +2931,7 @@ + - +
@@ -2861,7 +2964,7 @@ + - +
@@ -2894,7 +2997,7 @@ + - +
@@ -2927,7 +3030,7 @@ + - +
@@ -2960,7 +3063,7 @@ + - +
@@ -2993,7 +3096,7 @@ + - +
@@ -3026,7 +3129,7 @@ + - +
@@ -3059,7 +3162,7 @@ + - +
@@ -3092,7 +3195,7 @@ + - +
@@ -3125,7 +3228,7 @@ + - +
@@ -3158,7 +3261,7 @@ + - +
@@ -3191,7 +3294,7 @@ + - +
  @@ -3231,7 +3334,7 @@ + - +
@@ -3264,7 +3367,7 @@ + - +
@@ -3297,7 +3400,7 @@ + - +
@@ -3330,7 +3433,7 @@ + - +
@@ -3363,7 +3466,7 @@ + - +
@@ -3396,7 +3499,7 @@ + - +
@@ -3429,7 +3532,7 @@ + - +
@@ -3462,7 +3565,7 @@ + - +
@@ -3495,7 +3598,7 @@ + - +
@@ -3528,7 +3631,7 @@ + - +
@@ -3561,7 +3664,7 @@ + - +
@@ -3594,7 +3697,7 @@ + - +
@@ -3627,7 +3730,7 @@ + - +
@@ -3660,7 +3763,7 @@ + - +
@@ -3693,7 +3796,7 @@ + - +
@@ -3726,7 +3829,7 @@ + - +
@@ -3759,7 +3862,7 @@ + - +
@@ -3792,7 +3895,7 @@ + - +
  @@ -3832,7 +3935,7 @@ + - +
@@ -3865,7 +3968,7 @@ + - +
@@ -3898,7 +4001,7 @@ + - +
@@ -3931,7 +4034,7 @@ + - +
@@ -3964,7 +4067,7 @@ + - +
@@ -3997,7 +4100,7 @@ + - +
@@ -4030,7 +4133,7 @@ + - +
@@ -4063,7 +4166,7 @@ + - +
@@ -4096,7 +4199,7 @@ + - +
@@ -4129,7 +4232,7 @@ + - +
@@ -4162,7 +4265,7 @@ + - +
  @@ -4202,7 +4305,7 @@ + - +
@@ -4235,7 +4338,7 @@ + - +
@@ -4268,7 +4371,7 @@ + - +
@@ -4301,7 +4404,7 @@ + - +
@@ -4334,7 +4437,7 @@ + - +
@@ -4367,7 +4470,7 @@ + - +
@@ -4400,7 +4503,7 @@ + - +
@@ -4433,7 +4536,7 @@ + - +
@@ -4466,7 +4569,7 @@ + - +
@@ -4499,7 +4602,7 @@ + - +
@@ -4532,7 +4635,7 @@ + - +
  @@ -4572,7 +4675,7 @@ + - +
@@ -4605,7 +4708,7 @@ + - +
@@ -4638,7 +4741,7 @@ + - +
@@ -4671,7 +4774,7 @@ + - +
@@ -4704,7 +4807,7 @@ + - +
@@ -4737,7 +4840,7 @@ + - +
@@ -4770,7 +4873,7 @@ + - +
@@ -4803,7 +4906,7 @@ + - +
@@ -4836,7 +4939,7 @@ + - +
@@ -4869,7 +4972,7 @@ + - +
    @@ -4908,7 +5011,7 @@ + - +
@@ -4941,7 +5044,7 @@ + - +
@@ -4974,7 +5077,7 @@ + - +
@@ -5007,7 +5110,7 @@ + - +
@@ -5040,7 +5143,7 @@ + - +
@@ -5073,7 +5176,7 @@ + - +
@@ -5106,7 +5209,7 @@ + - +
@@ -5139,7 +5242,7 @@ + - +
@@ -5172,7 +5275,7 @@ + - +
@@ -5205,7 +5308,7 @@ + - +
@@ -5238,7 +5341,7 @@ + - +
@@ -5271,7 +5374,7 @@ + - +
@@ -5304,7 +5407,7 @@ + - +
@@ -5337,7 +5440,7 @@ + - +
@@ -5370,7 +5473,7 @@ + - +
@@ -5403,7 +5506,7 @@ + - +
@@ -5436,7 +5539,7 @@ + - +
@@ -5469,7 +5572,7 @@ + - +
  @@ -5510,7 +5613,7 @@ + - +
@@ -5544,7 +5647,7 @@ + - +
@@ -5578,7 +5681,7 @@ + - +
@@ -5612,7 +5715,7 @@ + - +
@@ -5646,7 +5749,7 @@ + - +
@@ -5680,7 +5783,7 @@ + - +
@@ -5714,7 +5817,7 @@ + - +
@@ -5748,7 +5851,7 @@ + - +
@@ -5782,7 +5885,7 @@ + - +
@@ -5816,7 +5919,7 @@ + - +
@@ -5850,7 +5953,7 @@ + - +
@@ -5883,7 +5986,7 @@ + - +
@@ -5916,7 +6019,7 @@ + - +
@@ -5949,7 +6052,7 @@ + - +
@@ -5982,7 +6085,7 @@ + - +
@@ -6015,7 +6118,7 @@ + - +
@@ -6048,7 +6151,7 @@ + - +
@@ -6081,7 +6184,7 @@ + - +
@@ -6114,7 +6217,7 @@ + - +
@@ -6147,7 +6250,7 @@ + - +
@@ -6180,7 +6283,7 @@ + - +
@@ -6213,7 +6316,7 @@ + - +
@@ -6246,14 +6349,36 @@ + - +
CS = Class Skill
RT = Requires Training
Cl/Ac/Sz/Co = Class Skill Bonus / Armor check penalty / Size mod / Condition penalty
- +
+ + + + + + + + + + + + + + + + + + + + + +

@@ -6668,12 +6793,13 @@ Condition - Spell Pen + Spell Pen + Notes
- + = @@ -6697,8 +6823,9 @@ - - + + + @@ -7008,12 +7135,13 @@ Condition - Spell Pen + Spell Pen + Notes
- + = @@ -7037,8 +7165,9 @@ - - + + + @@ -7348,12 +7477,13 @@ Condition - Spell Pen + Spell Pen + Notes
- + = @@ -7377,8 +7507,9 @@ - - + + + @@ -7711,21 +7842,21 @@ - +
- +
- +
@@ -7891,7 +8022,7 @@ IS NPC: - + CR @@ -8166,9 +8297,9 @@
- + - +
@@ -8274,12 +8405,12 @@ Notes - - - - - - + + + + + +
@@ -8439,14 +8570,22 @@
- - +
+ + +
+
+ + +
- +
- +
@@ -8984,308 +9123,402 @@ +
+ +

+
+
Skill Options
+
+ + +
+ +
+ +
+ + + + + + + + + +
+
-

-
-
- - Name - Total - Misc - - Name - Total - Misc - - Name - Total - Misc +

+
+ + + +
+ + + + + + + + + +
-
- - Acrobatics - - - - - Appraise - - - - - - - -
-
- - - - - - - - - - - - Bluff - - -
-
- - Climb - - - - - - - - - - - - -
-
- - - - - - - Diplomacy - - - - - Disable Device - - -
-
- - Disguise - - - - - Escape Artist - - - - - Fly - - -
-
- - Handle Animal - - - - - Heal - - - - - Intimidate - - -
-
- - Knowledge (Arcana) - - - - - Knowledge (Dungeoneering) - - - - - Knowledge (Engineering) - - -
-
- - Knowledge (Geography) - - - - - Knowledge (History) - - - - - Knowledge (Local) - - -
-
- - Knowledge (Nature) - - - - - Knowledge (Nobility) - - - - - Knowledge (Planes) - - -
-
- - Knowledge (Religion) - - - - - Linguistics - - - - - - - -
-
- - - - - - - - - - - - Perception - - -
-
- - - - - - - - - - - - - - -
-
- - - - - - - - - - - - - - -
-
- - Ride - - - - - Sense Motive - - - - - Sleight of Hand - - -
-
- - Spellcraft - - - - - Stealth - - - - - Survival - - -
-
- - Swim - - - - - Use Magic Device - - - - - - - -
-
- - - - - - - - - - - - - - -
-
- - - - - - - - - + +
+ +
+
+
+
+ + Name + Total + Misc + +
+
+ + Acrobatics + + +
+
+ + Appraise + + +
+
+ + Bluff + + +
+
+ + Climb + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + Diplomacy + + +
+
+ + Disable Device + + +
+
+ + Disguise + + +
+
+ + Escape Artist + + +
+
+ + Fly + + +
+
+ + Handle Animal + + +
+
+ + Heal + + +
+
+ + Intimidate + + +
+
+
+
+ + Name + Total + Misc + +
+
+ + Knowledge (Arcana) + + +
+
+ + Knowledge (Dungeoneering) + + +
+
+ + Knowledge (Engineering) + + +
+
+ + Knowledge (Geography) + + +
+
+ + Knowledge (History) + + +
+
+ + Knowledge (Local) + + +
+
+ + Knowledge (Nature) + + +
+
+ + Knowledge (Nobility) + + +
+
+ + Knowledge (Planes) + + +
+
+ + Knowledge (Religion) + + +
+
+ + Linguistics + + +
+
+ + Perception + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+
+
+ + Name + Total + Misc + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + Ride + + +
+
+ + Sense Motive + + +
+
+ + Sleight of Hand + + +
+
+ + Spellcraft + + +
+
+ + Stealth + + +
+
+ + Survival + + +
+
+ + Swim + + +
+
+ + Use Magic Device + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ + + + +
+
+ +
+
+
+ +

+
+
+ +
+
@@ -9446,6 +9679,17 @@
+
+ pf_generic (skill) + + + + + + + + +
@@ -9679,12 +9923,14 @@
Migrations Completed -
- Attacks Migrated - Damage Multiplier Migrated - Spells Migrated - Buffs Migrated - Combat Effects Migrated +
+ Attacks Migrated + Damage Multiplier Migrated + Buffs Migrated + Combat Effects Migrated +
+
+ Spells migrated. If you have not deleted original spells you can remigrate. To remigrate, delete all spells on spells tab and uncheck, then press refresh.
@@ -10645,7 +10891,7 @@ {{/accessible}} @@ -11210,7 +11456,7 @@
- {{#description}}
{{description}}
{{/description}} + {{#description}}
{{description}}
{{/description}}
{{/accessible}} @@ -11233,7 +11479,7 @@ {{#allprops() color accessible rounded header_image character_name character_id name_link subtitle dr_notes resistances_notes immunities_notes weaknesses_notes sr0_notes armor_notes save_notes cmd_notes defense_notes description}} {{/allprops() color accessible rounded header_image character_name character_id name_link subtitle dr_notes resistances_notes immunities_notes weaknesses_notes sr0_notes armor_notes save_notes cmd_notes defense_notes description}} - {{#description}}

Description

{{description}}{{/description}} + {{#description}}

Description

{{description}}{{/description}} {{/accessible}} @@ -11271,11 +11517,13 @@ {{#righttext_5}}
{{righttext_5}}
{{/righttext_5}} + +
- {{#allprops() color accessible rounded header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} + {{#allprops() color accessible rounded header_image character_name name character_id name_link subtitle init_notes description untrained righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }}
**{{key}}**
{{value}}
- {{/allprops() color accessible rounded header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} + {{/allprops() color accessible rounded header_image character_name name character_id name_link subtitle init_notes description untrained righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }}
@@ -11292,7 +11540,8 @@ {{#lefttext_10}}
{{lefttext_10}}
{{/lefttext_10}} {{#righttext_10}}
{{righttext_10}}
{{/righttext_10}} - {{#description}}
{{description}}
{{/description}} + {{#untrained}}
****
{{/untrained}} + {{#description}}
{{description}}
{{/description}} {{/accessible}} @@ -11313,9 +11562,9 @@ {{#righttext_4}}{{/righttext_4}} {{#lefttext_5}}{{/lefttext_5}} {{#righttext_5}}{{/righttext_5}} - {{#allprops() color accessible rounded header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} + {{#allprops() color accessible rounded header_image character_name name character_id name_link subtitle init_notes description untrained righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} - {{/allprops() color accessible rounded header_image character_name character_id name_link subtitle init_notes description righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} + {{/allprops() color accessible rounded header_image character_name name character_id name_link subtitle init_notes description untrained righttext_1 lefttext_1 righttext_2 lefttext_2 righttext_3 lefttext_3 righttext_4 lefttext_4 righttext_5 lefttext_5 righttext_6 lefttext_6 righttext_7 lefttext_7 righttext_8 lefttext_8 righttext_9 lefttext_9 righttext_10 lefttext_10 }} {{#lefttext_6}}{{/lefttext_6}} {{#righttext_6}}{{/righttext_6}} {{#lefttext_7}}{{/lefttext_7}} @@ -11327,7 +11576,8 @@ {{#lefttext_10}}{{/lefttext_10}} {{#righttext_10}}{{/righttext_10}} - {{#description}}

Description

{{description}}{{/description}} + {{#untrained}}{{/untrained}} + {{#description}}

Description

{{description}}{{/description}} {{/accessible}} @@ -11353,13 +11603,13 @@
- {{#allprops() color accessible rounded header_image character_name character_id name_link subtitle description long}} + {{#allprops() color accessible rounded name header_image character_name character_id name_link subtitle description long}}
{{value}}
- {{/allprops() color accessible rounded header_image character_name character_id name_link subtitle description long}} + {{/allprops() color accessible rounded name header_image character_name character_id name_link subtitle description long}}
- {{#description}}
{{description}}
{{/description}} + {{#description}}
{{description}}
{{/description}} {{#long}}
{{long}}
{{/long}}
@@ -11372,10 +11622,10 @@ {{#name}}{{name}}{{/name}} {{#subtitle}}

{{subtitle}}

{{/subtitle}} - {{#allprops() color accessible rounded header_image character_name character_id name_link subtitle description }} - - {{/allprops() color accessible rounded header_image character_name character_id name_link subtitle description }} - {{#description}}

Description

{{description}}{{/description}} + {{#allprops() color accessible rounded name header_image character_name character_id name_link subtitle description }} + + {{/allprops() color accessible rounded name header_image character_name character_id name_link subtitle description }} + {{#description}}

Description

{{description}}{{/description}} {{/accessible}} @@ -12053,7 +12303,8 @@ var TAS = TAS || (function () { }()); /* ---- END: TheAaronSheet.js ---- */ -TAS.config({ logging: { info: false} }); +//TAS.config({ logging: { info: false} }); +TAS.config({ logging: { info: false,debug:false} }); //TAS.debugMode(); var ExExp = ExExp || (function () { @@ -12608,7 +12859,7 @@ var ExExp = ExExp || (function () { } // error if (x.type === "number") { // number node; coerce to string - x.value = "" + x.value; + x.value = String(x.value); x.type = "string"; } if (x.type !== "string") { @@ -12785,7 +13036,7 @@ var ExExp = ExExp || (function () { } // error if (x.type === "number") { // number node; coerce to string - x.value = "" + x.value; + x.value = String(x.value); x.type = "string"; } if (x.type !== "string") { @@ -13250,45 +13501,36 @@ var SWUtils = SWUtils || (function () { * */ evaluateAndSetNumber = function (readField, writeField, defaultVal, callback) { - //TAS.debug("at evaluateAndSetNumber read:" + readField + ", write:" + writeField); + var hasCallback=(typeof callback ==="function"); getAttrs([readField, writeField], function (values) { var setter = {}, trueDefault = defaultVal || 0, currVal = parseInt(values[writeField], 10), - hasCallback=(typeof callback ==="function"), value = Number(values[readField]); if (typeof values[readField] === "undefined"){ value=0; - setter[writeField] = value; - if (hasCallback){ - setAttrs(setter,{},callback(value)); + if (currVal!==0){ + setter[writeField] = value; + setAttrs(setter,{},function(){if (hasCallback){callback(value,true);}}); } else { - setAttrs(setter); + if (hasCallback){callback(value,false);} } } else if (!isNaN(value)) { - //TAS.debug("it was a number"); if (currVal !== value) { - //TAS.debug({ "function": "evaluateAndSetNumber", "currVal": currVal, "newVal": value }); setter[writeField] = value; - if (hasCallback){ - setAttrs(setter,{},callback(value)); - } else { - setAttrs(setter); - } - } + setAttrs(setter,{},function(){if (hasCallback){callback(value,true);}}); + } else { + if (hasCallback){callback(value,false);} + } } else { - //TAS.debug("ok evaluate " + values[readField]); evaluateExpression(values[readField], function (value2) { - //look for ( and ) at beginning and end value2 = isNaN(value2) ? trueDefault : value2; if (isNaN(currVal) || currVal !== value2) { setter[writeField] = value2; - if (hasCallback){ - setAttrs(setter,{},callback(value2)); - } else { - setAttrs(setter); - } - } + setAttrs(setter,{},function(){if (hasCallback){callback(value2,true);}}); + } else { + if (hasCallback){callback(value,false);} + } }); } }); @@ -13524,14 +13766,36 @@ var SWUtils = SWUtils || (function () { array1.push(stringOrArray); } return array1; + }, + + + cartesianAppend=function() { + return _.reduce(arguments, function(a, b) { + return _.flatten(_.map(a, function(x) { + return _.map(b, function(y) { + return x+y; + }); + }), true); + }, [ [] ]); + }, + cartesianProduct=function() { + return _.reduce(arguments, function(a, b) { + return _.flatten(_.map(a, function(x) { + return _.map(b, function(y) { + return x.concat([y]); + }); + }), true); + }, [ [] ]); } + + ; return { - util: { - validNumericStr: validNumericStr - } + validNumericStr: validNumericStr + , cartesianAppend: cartesianAppend + , cartesianProduct: cartesianProduct , searchAndReplaceFields: searchAndReplaceFields , evaluateExpression: evaluateExpression , evaluateAndSetString: evaluateAndSetString @@ -13555,7 +13819,7 @@ var SWUtils = SWUtils || (function () { var PFSheet = PFSheet || (function () { 'use strict'; - var version = 0.64, + var version = 0.65, /* isOptionTemplateReversed - for dropdowns in templates where value is before equals */ isOptionTemplateReversed = function(spellOptionKey){ @@ -13612,10 +13876,21 @@ var PFSheet = PFSheet || (function () { , "CMB-ability": "CMB-ability-mod" , "CMB2-ability": "CMB2-ability-mod" }, + + equationMacros= { + "init-misc": "init-misc-mod" + , "HP-formula-macro-text": "HP-formula-mod" + , "Max-Skill-Ranks-Misc": "Max-Skill-Ranks-mod" + , "SR-macro-text": "SR" + , "npc-hd-misc": "npc-hd-misc-mod" + , "spellclass-0-SP_misc": "spellclass-0-SP-mod" + , "spellclass-1-SP_misc": "spellclass-1-SP-mod" + , "spellclass-2-SP_misc": "spellclass-2-SP-mod" + }, + repeatingDropdowns = [ {"sect":"weapon","dd":"attack-type","ddmod":"attack-type-mod"} , {"sect":"weapon","dd":"damage-ability","ddmod":"damage-ability-mod"} - //, {"sect":"class-ability","dd":"class-number","ddmod":"class-name"} //this is handled by ], //Special defense tab dropdowns (since they are synced across each other) @@ -13629,65 +13904,98 @@ var PFSheet = PFSheet || (function () { }, attackGridFields = { - "melee": { "size": "size", "atk": "attk-melee", "buff": "buff_Melee-total", "abilityMod": "melee-ability-mod", "misc": "attk-melee-misc", "crit":"attk_melee_crit_conf", "attackmacro":"@{global_melee_macro_insert}", "damagemacro":"@{global_melee_damage_macro_insert}" } - , "melee2": { "size": "size", "atk": "attk-melee2", "buff": "buff_Melee-total", "abilityMod": "melee2-ability-mod", "misc": "attk-melee2-misc", "crit":"attk_melee2_crit_conf", "attackmacro":"@{global_melee_macro_insert}", "damagemacro":"@{global_melee_damage_macro_insert}" } - , "ranged": { "size": "size", "atk": "attk-ranged", "buff": "buff_Ranged-total", "abilityMod": "ranged-ability-mod", "misc": "attk-ranged-misc", "crit":"attk_ranged_crit_conf", "attackmacro":"@{global_ranged_macro_insert}", "damagemacro":"@{global_ranged_damage_macro_insert}" } - , "ranged2": { "size": "size", "atk": "attk-ranged2", "buff": "buff_Ranged-total", "abilityMod": "ranged2-ability-mod", "misc": "attk-ranged2-misc", "crit":"attk_ranged2_crit_conf", "attackmacro":"@{global_ranged_macro_insert}", "damagemacro":"@{global_ranged_damage_macro_insert}" } - , "CMB": { "size": "CMD-size", "atk": "CMB", "buff": "buff_Melee-total", "abilityMod": "CMB-ability-mod", "misc": "attk-CMB-misc", "crit":"attk_cmb_crit_conf", "attackmacro":"@{global_cmb_macro_insert}", "damagemacro":"@{global_cmb_damage_macro_insert}" } - , "CMB2": { "size": "CMD-size", "atk": "CMB2", "buff": "buff_Melee-total", "abilityMod": "CMB2-ability-mod", "misc": "attk-CMB2-misc", "crit":"attk_cmb2_crit_conf", "attackmacro":"@{global_cmb_macro_insert}", "damagemacro":"@{global_cmb_damage_macro_insert}" } + "melee": { "size": "size", "atk": "attk-melee", "buff": "buff_Melee-total", "abilityMod": "melee-ability-mod", "misc": "attk-melee-misc", "crit":"attk_melee_crit_conf", "attackmacro":"@{toggle_global_melee_macro_insert}", "damagemacro":"@{toggle_global_melee_damage_macro_insert}" } + , "melee2": { "size": "size", "atk": "attk-melee2", "buff": "buff_Melee-total", "abilityMod": "melee2-ability-mod", "misc": "attk-melee2-misc", "crit":"attk_melee2_crit_conf", "attackmacro":"@{toggle_global_melee_macro_insert}", "damagemacro":"@{toggle_global_melee_damage_macro_insert}" } + , "ranged": { "size": "size", "atk": "attk-ranged", "buff": "buff_Ranged-total", "abilityMod": "ranged-ability-mod", "misc": "attk-ranged-misc", "crit":"attk_ranged_crit_conf", "attackmacro":"@{toggle_global_ranged_macro_insert}", "damagemacro":"@{toggle_global_ranged_damage_macro_insert}" } + , "ranged2": { "size": "size", "atk": "attk-ranged2", "buff": "buff_Ranged-total", "abilityMod": "ranged2-ability-mod", "misc": "attk-ranged2-misc", "crit":"attk_ranged2_crit_conf", "attackmacro":"@{toggle_global_ranged_macro_insert}", "damagemacro":"@{toggle_global_ranged_damage_macro_insert}" } + , "CMB": { "size": "CMD-size", "atk": "CMB", "buff": "buff_Melee-total", "abilityMod": "CMB-ability-mod", "misc": "attk-CMB-misc", "crit":"attk_cmb_crit_conf", "attackmacro":"@{toggle_global_cmb_macro_insert}", "damagemacro":"@{toggle_global_cmb_damage_macro_insert}" } + , "CMB2": { "size": "CMD-size", "atk": "CMB2", "buff": "buff_Melee-total", "abilityMod": "CMB2-ability-mod", "misc": "attk-CMB2-misc", "crit":"attk_cmb2_crit_conf", "attackmacro":"@{toggle_global_cmb_macro_insert}", "damagemacro":"@{toggle_global_cmb_damage_macro_insert}" } }, saveTypes = ["Fort", "Ref", "Will"], - - backgroundCoreSkills = [ - "Appraise", "Craft", "Craft2", "Craft3", "Craft4", "Craft5", "Craft6", "Craft7", "Craft8", "Craft9", "Craft10", "Handle-Animal" - , "Knowledge-Engineering", "Knowledge-Geography", "Knowledge-History" - , "Knowledge-Nobility", "Perform", "Perform2", "Perform3", "Perform4", "Perform5", "Perform6", "Perform7", "Perform8", "Perform9", "Perform10" - , "Profession", "Profession2", "Profession3", "Profession4", "Profession5", "Profession6", "Profession7", "Profession8", "Profession9", "Profession10", "Sleight-of-Hand" - , "Misc-Skill-5", "Misc-Skill-6", "Misc-Skill-7", "Misc-Skill-8", "Misc-Skill-9" - ], - //NEW skills for background in Unchained - backgroundOnlySkills = ["Artistry", "Artistry2", "Artistry3", "Artistry4", "Artistry5", "Artistry6", "Artistry7", "Artistry8", "Artistry9", "Artistry10" - , "Lore", "Lore2", "Lore3", "Lore4", "Lore5", "Lore6", "Lore7", "Lore8", "Lore9", "Lore10"], - skillsWithFillInNames = ["Artistry","Craft","Lore","Misc-Skill","Perform","Profession"], - adventureSkills = [ - "Acrobatics", "Bluff", "Climb", "Diplomacy", "Disable-Device" - , "Disguise", "Escape-Artist", "Fly", "Heal", "Intimidate" - , "Linguistics", "Knowledge-Arcana", "Knowledge-Dungeoneering" - , "Knowledge-Local", "Knowledge-Nature", "Knowledge-Planes" - , "Knowledge-Religion", "Perception", "Ride", "Sense-Motive" - , "Spellcraft", "Stealth", "Survival", "Swim", "Use-Magic-Device" - , "Misc-Skill-0", "Misc-Skill-1", "Misc-Skill-2", "Misc-Skill-3", "Misc-Skill-4" - ], - backgroundSkills = _.sortBy(backgroundCoreSkills.concat(backgroundOnlySkills), function(skill){return skill;}), - allCoreSkills = _.sortBy(adventureSkills.concat(backgroundCoreSkills), function(skill){return skill;}), - //consolidated skills for Unchained - consolidatedSkills = [ - "CS-Acrobatics", "CS-Athletics", "CS-Finesse", "CS-Influence", "CS-Nature", "CS-Perception" - , "CS-Performance", "CS-Religion", "CS-Society", "CS-Spellcraft", "CS-Stealth", "CS-Survival" - ], - - //skills that depend on size, and 1 or 2: - // 1 is the normal size modifier in size_skill, 2 is size_skill_double - sizeSkills = { "Fly": 1, "Stealth": 2, "CS-Stealth": 2 }, - //the 3 spell classes at top of spells page - spellClassIndexes = ["0", "1", "2"], - //events for those 3 classes - //first is event string, second is array of methods to call, each much take classidx as first/only param - //spell levels for repeating spell sections - spellLevels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], - //events for repeating spells - //first is event string, second is array of methods to call, each much take spell level as first/only param + wornEquipmentRows = ["Belt", "Body", "Chest", "Eyes", "Feet", "Hands", "Head", "Headband", "Neck", "Ring1", "Ring2", "Shoulders", "Wrist"], wornEquipmentColumns = ["charges", "weight", "hp", "hp_max", "value"], defenseArmorShieldRows = ["armor", "armor2", "armor3", "shield", "shield2", "shield3"], defenseArmorShieldColumns = ["equipped", "acbonus", "max-dex", "acp", "spell-fail", "proficiency"], + + + /********************* SKILLS ****************************/ + //these are for building the macros + regularCoreSkills = ["Appraise", "Acrobatics", "Bluff", "Climb", "Diplomacy", "Disable-Device" + , "Disguise", "Escape-Artist", "Fly", "Handle-Animal", "Heal", "Intimidate" + , "Linguistics", "Perception", "Ride", "Sense-Motive", "Sleight-of-Hand" + , "Spellcraft", "Stealth", "Survival", "Swim", "Use-Magic-Device" + ], + regularBackgroundSkills=[ + "Appraise", "Handle-Animal", "Linguistics", "Sleight-of-Hand" + ], + regularAdventureSkills=[ "Acrobatics", "Bluff", "Climb", "Diplomacy", "Disable-Device" + , "Disguise", "Escape-Artist", "Fly", "Heal", "Intimidate" + , "Perception", "Ride", "Sense-Motive", "Sleight-of-Hand" + , "Spellcraft", "Stealth", "Survival", "Swim", "Use-Magic-Device" + ], - //classes without their own spell lists - hunter handled special by parseCompendiumSpell + + skillAppendNums=["","2","3","4","5","6","7","8","9","10"], + miscSkillAppendNums=["-0","-1","-2","-3","-4","-5","-6","-7","-8","-9"], + backgroundOnlySkillParents=["Artistry","Lore"], + backgroundOnlySkills = SWUtils.cartesianAppend(backgroundOnlySkillParents,skillAppendNums), + coreSkillsWithFillInNames=["Craft","Misc-Skill","Perform","Profession"], + skillsWithFillInNames = coreSkillsWithFillInNames.concat(backgroundOnlySkillParents).sort(), + coreSkillsWithSubSkills = coreSkillsWithFillInNames.concat(["Knowledge"]).sort(), + skillsWithSubSkills = skillsWithFillInNames.concat(["Knowledge"]).sort(), + knowledgeSubSkills = ["Arcana","Dungeoneering","Engineering","Geography","History","Local","Nature","Nobility","Planes","Religion"], + knowledgeSubSkillsTranslateKeys = _.map(knowledgeSubSkills,function(key){return key.toLowerCase();}), + knowledgeSkillAppends = _.map(knowledgeSubSkills,function(subskill){return "-"+subskill;}), + knowledgeSkills = _.map(knowledgeSubSkills,function(subskill){return "Knowledge-"+subskill;}), + //for each skill array of the possible skills {"Craft":["Craft","Craft2"...],"Perform":["Perform","Perform2"...] } + subskillArrays = _.reduce(skillsWithSubSkills,function(memo,skill){ + var appenders= (skill==="Misc-Skill")?miscSkillAppendNums:(skill==="Knowledge")?knowledgeSkillAppends:skillAppendNums; + memo[skill]=SWUtils.cartesianAppend([skill],skillAppendNums); + return memo; + },{}), + allFillInSkillInstances = SWUtils.cartesianAppend(["Craft","Perform","Profession","Artistry","Lore"], + skillAppendNums).concat(SWUtils.cartesianAppend(["Misc-Skill"],miscSkillAppendNums) ).sort(), + backgroundCoreSkills = regularBackgroundSkills.concat( subskillArrays["Craft"]) + .concat(subskillArrays["Perform"]).concat(subskillArrays["Profession"]) + .concat(["Knowledge-Engineering", "Knowledge-Geography", "Knowledge-History", "Knowledge-Nobility"]) + .concat(["Misc-Skill-5", "Misc-Skill-6", "Misc-Skill-7", "Misc-Skill-8", "Misc-Skill-9"]).sort(), + + adventureSkills = regularAdventureSkills + .concat(["Knowledge-Arcana", "Knowledge-Dungeoneering", "Knowledge-Local", "Knowledge-Nature", "Knowledge-Planes"]) + .concat(["Misc-Skill-0", "Misc-Skill-1", "Misc-Skill-2", "Misc-Skill-3", "Misc-Skill-4"]).sort(), + backgroundSkills =backgroundCoreSkills.concat(backgroundOnlySkills).sort(), + allCoreSkills = adventureSkills.concat(backgroundCoreSkills).sort(), + consolidatedSkills = ["CS-Acrobatics", "CS-Athletics", "CS-Finesse", "CS-Influence", "CS-Nature", "CS-Perception" + , "CS-Performance", "CS-Religion", "CS-Society", "CS-Spellcraft", "CS-Stealth", "CS-Survival"], + + coreSkillAbilityDefaults = {"Acrobatics": "dex", "Appraise": "int", "Bluff": "cha", +"Climb": "str", "Craft": "int", "Diplomacy": "cha", "Disable-Device": "dex", +"Disguise": "cha", "Escape-Artist": "dex", "Fly": "dex", "Handle-Animal": "cha", +"Heal": "wis", "Intimidate": "cha", "Knowledge-Arcana": "int", "Knowledge-Dungeoneering": "int", +"Knowledge-Engineering": "int", "Knowledge-Geography": "int", "Knowledge-History": "int", +"Knowledge-Local": "int", "Knowledge-Nature": "int", "Knowledge-Nobility": "int", "Knowledge": "int", +"Knowledge-Planes": "int", "Knowledge-Religion": "int", "Linguistics": "int", "Perception": "wis", +"Perform": "cha", "Profession": "wis", "Ride": "dex", "Sense-Motive": "wis", "Sleight-of-Hand": "dex", +"Spellcraft": "int", "Stealth": "dex", "Survival": "wis", "Swim": "str", "Use-Magic-Device": "cha"}, + + + // skills that depend on size 1 is the normal size modifier in size_skill, 2 is size_skill_double + sizeSkills = { "Fly": 1, "Stealth": 2, "CS-Stealth": 2 }, + //the 3 spell classes at top of spells page + spellClassIndexes = ["0", "1", "2"], + //spell levels for repeating spell sections + spellLevels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9"], + + + //classes without their own spell lists plus bloodrager, whose list is not in compendium - hunter handled special by parseCompendiumSpell classesUsingOtherSpellLists = { - "arcanist":"wizard" - , "investigator":"alchemist" - , "warpriest":"cleric" + "arcanist": "wizard" + , "investigator": "alchemist" + , "warpriest": "cleric" + , "skald": "bard" + , "bloodrager": "sorcerer" }, @@ -13699,7 +14007,7 @@ var PFSheet = PFSheet || (function () { , "Concentration-mod", "savedc", "SP-mod", "range_pick", "range" , "spell_level", "spellclass", "casterlevel", "components", "spellclass_number" ], - spellOptionHelperAttributes = ["spellclass_number","SP_misc","CL_misc","Concentration_misc"], + spellOptionHelperAttributes = ["spellclass_number","SP_misc","CL_misc","Concentration_misc","slot"], //all fields that are printed to rolltemplate by spell options except "description" spellOptionAttributesNoDescription = _.filter(spellOptionAttributes,function(field){ return (field !== "description"); @@ -13757,8 +14065,8 @@ var PFSheet = PFSheet || (function () { spellOptionRegex = getOptionsCompiledRegexMap (spellOptions), - spellOptionEventsPlayer = [ "school", "cast-time", "components", "duration", "save", "sr", "range", "targets"], - spellOptionEventsAuto = ["casterlevel","Concentration-mod"], + //these only affect options + spellOptionEventsPlayer = [ "school", "cast-time", "components", "duration", "save", "sr", "range", "targets"], spellOptionEventToToggleMap={ school:"toggle_spell_school_notes", "cast-time":"toggle_spell_casting_time_notes" , components:"toggle_spell_components_notes", duration:"toggle_spell_duration_notes" @@ -13769,9 +14077,6 @@ var PFSheet = PFSheet || (function () { /****************** OPTIONS ATTACKS ************************/ - - - attackOptions={ melee_notes:"{{melee_notes=REPLACE}}" ,ranged_notes:"{{ranged_notes=REPLACE}}" @@ -13779,7 +14084,6 @@ var PFSheet = PFSheet || (function () { ,attack_notes:"{{attack_notes=REPLACE}}" ,header_image:"{{header_image=REPLACE}}" }, - attackOptionsDefaults={ notes:{ melee:"@{melee-attack-notes}" @@ -13791,21 +14095,16 @@ var PFSheet = PFSheet || (function () { , ranged:"@{header_image-pf_attack-ranged}" , CMB:"@{header_image-pf_attack-cmb}"} }, - attackNonRepeatingOptionAttributes = ["melee-attack-notes","ranged-attack-notes","CMB-notes","attack-notes" ,"header_image-pf_attack-melee","header_image-pf_attack-ranged","header_image-pf_attack-cmb"], - attackToggles=[ - "toggle_attack_melee_notes","toggle_attack_ranged_notes","toggle_attack_CMB_notes","toggle_attack_attack_notes","toggle_attack_header_image" - ], - attackOptionSetField="macro_options", - attackOptionHelperAttributes=["attack-type"], - attackOptionEventsPlayer = ["attack-type"], - + attackToggles=["toggle_attack_melee_notes","toggle_attack_ranged_notes","toggle_attack_CMB_notes" + ,"toggle_attack_attack_notes","toggle_attack_header_image"], + attackOptionEventsPlayer = ["attack-type","damage-ability","damage-dice-num"], attackOptionRegex = getOptionsCompiledRegexMap (attackOptions), - - - /****************************UTILITIES ************************************/ + + + /****************************UTILITIES ************************************/ /* findAbilityInString * For dropdowns, this looks at the